这个板块,仅仅用于记录我的问题,有些问题在学习过程中出现,不知道是否重要,但是还是要去寻求答案,为了防止自己遗忘,就做个备忘的日志。
1、lua中metatable对于一个table说有什么样的功能,我已经了解了,但是它是怎么样的一种存在形式呢?来看下面一段例子,也是我疑问的由来
function DefaultNum(set,v)
local mt={__index = function () return v end}
setmetatable(set,mt)
end
do
s = {1,2,3}
DefaultNum(s , 1)
print(s[4])
end
这段代码是可以运行的,它是设置一个table的默认值。
请注意,在DefafultNum中,把一个局部变量的表作为了另一个代码块中的表的metatable。
疑问在于,在对一个table指定metatable,是不是会把metatable的生命周期延长到至少和table一样长?在内存中的活动是怎么样的?