我们说我有以下代码:
local a = "first text"
local b = a
print(a) -- prints "first text"
print(b) -- prints "first text"
local c = "second text"
a = c
print(a) -- prints "second text"
print(b) -- prints "first text"
所以,如果我分配变量" a"变量" c",变量" b"没有更新。
我需要制作变量" b"当我更新" a"时更新自己。 (在这种情况下,使" b"也具有变量" c")的值。
有没有办法做到这一点?
更新:上面的代码只是一个简化。在我的实际场景中,变量是表(而不是字符串)。
答案 0 :(得分:1)
你误解了变量赋值和数据类型在Lua中是如何工作的。
只是桌子& userdata存储为引用,其他所有内容都存储为值(包括字符串)。 a
被复制并存储为b
,c
被复制并存储为a
。
您可以将字符串作为条目放在表中,因此该表是一个包装器并用作C指针。
您可以使用metatables继续进行类似OO的编程。