lua历史问题记录

这个板块,仅仅用于记录我的问题,有些问题在学习过程中出现,不知道是否重要,但是还是要去寻求答案,为了防止自己遗忘,就做个备忘的日志。


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一样长?在内存中的活动是怎么样的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值