在其先前的变量赋值更改时自行进行变量更新

时间:2015-09-05 19:48:53

标签: lua point

我们说我有以下代码:

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")的值。

有没有办法做到这一点?

更新:上面的代码只是一个简化。在我的实际场景中,变量是表(而不是字符串)。

1 个答案:

答案 0 :(得分:1)

你误解了变量赋值和数据类型在Lua中是如何工作的。

只是桌子& userdata存储为引用,其他所有内容都存储为值(包括字符串)。 a被复制并存储为bc被复制并存储为a

您可以将字符串作为条目放在表中,因此该表是一个包装器并用作C指针。

您可以使用metatables继续进行类似OO的编程。