Lua 使变量在其先前的变量赋值更改时更新自身

Lua 使变量在其先前的变量赋值更改时更新自身,lua,point,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”不会更新 当我更新“a”

假设我有以下代码:

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”不会更新

当我更新“a”时,我需要使变量“b”自身更新。(在这种情况下,使“b”也具有变量“c”的值)

有办法吗


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

您误解了变量赋值和数据类型在Lua中的工作方式

只有表和用户数据作为引用存储,其他所有内容都作为值(包括字符串)存储<代码>a被复制并存储为
b
c
被复制并存储为
a

您可以将字符串作为条目放入表中,因此该表是一个包装器,充当C指针


您可以进一步使用。

进行类似OO的编程。我非常确定您的目标不仅仅是“更新变量”。你能描述一下你需要从你的项目中得到什么样的结果吗?也许有更好的方法。是的,你说得对。上面的代码示例只是为了使问题更容易理解而进行的简化。在我的代码中,有一个表变量DD指向另一个表变量EE。然后我将EE指定为FF(这也是一个表)。我的表DD一直指向以前的EE内存插槽。我想知道Lua是否会提供一种让DD“自我更新”的方法。我的猜测是没有,但谁知道呢…谢谢你的回答尤卡,但我不知道你是否理解我真正想要的。上面的例子简化了我的需要。我让A指向B,然后让B指向C,我想让A自动指向C(并保持指向B)。我知道存储非表的变量不是引用,但即使使用表变量也不起作用(这是我尝试的第一件事)。我也读过元表,但它不适用。不过还是谢谢你。