Lua表的引用特征

Lua表的引用特征、Lua表的赋值、Lua表的移除

local table_a = {'A','B','C'}
local table_b = table_a
table.insert(table_b,'D')
table.insert(table_a,'E')
table_a = nil

for k,v in pairs(table_b) do
   print('k=',k,' v=',v)
end



--[[ 输出
k=	1	 v=	A
k=	2	 v=	B
k=	3	 v=	C
k=	4	 v=	D
k=	5	 v=	E
]]

分析,建立一张table_a表,并向其中插入‘A’、‘B’、‘C’三个字符,将table_a赋值给table_b,再向table_b插入字符’D’,紧接着向table_a插入字符’E’,把table_a表移除,打印出table_b表,可以看出,把所以字符都打印出来了。

当创建了table_a表的时候,会创建一个存储区域,并且返回一个指向该存储区域的指针给table_a这个变量,然后再让table_b这个变量也指向了该存储区域,这样一来,不管操作table_a还是操作table_b,都能实现向存储区域增删改查,当把其中一个指针table_a移除时,存储区域不会消失,还能通过指针table_b操作,当table_b也移除时,才会触发lua的回收机制,将存储区域回收。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值