我想知道 table.insert 在 lua 中是如何工作的?!
我问这个是因为我尝试在带有元方法的自定义表上使用它,__newindex
但似乎没有调用它。有没有办法让我的自定义表格功能与 table.insert 一起使用?!
根据我对语言的卑微知识,我会说它使用类似的rawset
东西,或者我不知道的东西。
我工作的样本:
do
tabl = {1,2,3}
local _tabl = tabl
tabl = {}
local mt = { __newindex = function(t,k,v) print"changing" ;_tabl[k] = v end, __index = _tabl}
setmetatable(tabl,mt)
end
tabl[4] = 4; --prints "changing"
table.insert(tabl,5) -- prints nothing!!