举例说明Lua中元表和元方法的使用
这篇文章主要介绍了举例说明Lua中元表和元方法的使用,文中--两个横线开始单行的注释,--[[加上两个[和]表示多行的注释--]],需要的朋友可以参考下
table的元表提供了一种机制,可以重定义table的一些操作。
之后我们会看到元表是如何支持类似js的prototype行为。
f2 = {a = 2, b = 3}
-- s = f1 + f2
metafraction = {}
function metafraction.__add(f1, f2)
sum = {}
sum.b = f1.b * f2.b
sum.a = f1.a * f2.b + f2.a * f1.b
return sum
end
setmetatable(f1, metafraction)
setmetatable(f2, metafraction)
s = f1 + f2 -- 调用在f1的元表上的__add(f1, f2) 方法
-- f1, f2 没有能访问它们元表的key,这与prototype不一样,
-- 所以你必须用getmetatable(f1)去获得元表。元表是一个普通的table,
-- Lua可以通过通常的方式去访问它的key,例如__add。
相关文章
Golang使用ChatGPT生成单元测试实践
这篇文章主要为大家介绍了Golang使用ChatGPT生成单元测试实践详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
Lua中的模块(module)和包(package)详解
这篇文章主要介绍了Lua中的模块(module)和包(package)详解,本文讲解了require函数、写一个模块、package.loaded、module函数等内容,需要的朋友可以参考下
Lua 中 pairs 和 ipairs 的区别
这篇文章主要介绍了Lua 中 pairs 和 ipairs 的区别,本文用官方文档和代码实例总结了它的们的区别,需要的朋友可以参考下
Lua实现split函数
这篇文章主要介绍了Lua实现split函数,lua中没有split分割字条串函数,本文使用自定义函数实现,需要的朋友可以参考下
Lua教程(一):简介、优势和应用场景介绍
这篇文章主要介绍了Lua教程(一):简介、优势和应用场景介绍,本文是Lua教程系列文章的第一篇,需要的朋友可以参考下