这篇文章主要介绍了举例说明Lua中元表和元方法的使用,文中--两个横线开始单行的注释,--[[加上两个[和]表示多行的注释--]],需要的朋友可以参考下
table的元表提供了一种机制,可以重定义table的一些操作。
之后我们会看到元表是如何支持类似js的prototype行为。
复制代码 代码如下:
f1 = {a = 1, b = 2} -- 表示一个分数 a/b.
f2 = {a = 2, b = 3}
f2 = {a = 2, b = 3}
复制代码 代码如下:
-- 这个是错误的:
-- s = f1 + f2
-- 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。
以上就是举例说明Lua中元表和元方法的使用的详细内容,更多请关注0133技术站其它相关文章!