一个table的弱引用类型是通过其元素表中的__mode字段来决定的,这个字段的值应为一个字符串,如果这个字符串中包含字母'k'/'v'那么这个table 的value是弱引用,代码如下:

复制代码 代码如下:
key = {} 
a[key] = 1 
key = {} 
a[key] = 2 
collectgarbage() --强制进行一次垃圾收集 
for k, v in pairs(a) do 
    print(v) 
end 

结果:2

第二句复制key = {} 会覆盖第一个key.当收集器运行时,由于没有其他地方在引用第一个key,因此第一个key就被回收了,并且table中的相应条目也被删除了,至于第二个key,变量key仍引用它,因此它没有被回收了

注意,lua只会回收弱引用table中的对象,而像数字和bool这样的值,是不可以回收的。

标签:
Lua,弱引用

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com

评论“Lua中的弱引用介绍”

暂无“Lua中的弱引用介绍”评论...

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。