【发布时间】:2018-08-05 18:39:57
【问题描述】:
我正在尝试在 Lua 中学习元表,我遇到了以下示例:-
local my_metatable = {}
local my_tab = {}
setmetatable(my_tab, my_metatable)
-- Set the __index metamethod:
my_metatable.__index = function (tab, key)
print("Hello, " .. key)
return "cruel world"
end
-- Trigger the __index metamethod:
print("Goodbye, " .. my_tab["world"])
结果是:-
Hello, world
Goodbye, cruel world
我的问题是 - my_metatable.__index = function (tab, key) 中的变量 tab 做了什么。我可以将其更改为任何内容,并且不会以任何方式影响程序。
谢谢!
;^) 扎洛金
【问题讨论】:
-
如果遇到任何困难,您不自己谷歌搜索并在 StackOverflow 上懒洋洋地问它,您就无法知道。同样在所有问题上,您的名字都在其下方,因此无需签名。
-
您可以对多个表使用相同的元方法(或相同的元表)变量
tab将等于被索引的表。 -
其实在Lua手册中有说明。在这里提问之前可以参考一下吗?谢谢。(这是您学习自己编程的唯一方法)