lua "引用表"的清空

--~ C++ 值与引用 小引
--
~ 思考 1
--
~ int v = 1;
--
~ int &v1 = v;
--
~ v = 2;
--
~ v1 == ?


--~ 思考 2
--
~ int v = 1;
--
~ int v1 = v;
--
~ v = 2;
--
~ v1 == ?

local tab = {"a","b"}
local tab2 = tab;

print(tab2[1]);
tab[1] = "x";
print(tab2[1]);

tab2[1] = "XX";
print(tab[1]);
-- 上面表示,tab 传的 "引用"给tab2,因为它们的值改变了,对方的值也改变,即,他们引用的是同一地址


tab2 = {}; -- 把tab2清空,理论上tab也应该被清空,可是,这条语句的本质是,将tab2“指向一个新的地址”,在C++里面引用是不可以再引用到另一个对象上的,即,引用与对象是一对一的关系
print(tab[1]); -- 值为XX

关于“引用表”的清空,要将原表清空,遍历"引用表",将它的每个值设置为nil,要么就使用一个新表,与原来的无关

转载于:https://www.cnblogs.com/emyueguang/archive/2011/11/03/2234303.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值