【发布时间】:2015-12-14 12:31:23
【问题描述】:
我已经简化了我的代码,以便您更好地理解:
x = {}
x["foo"]=1
a = {}
a[1]=x
x["foo"]=2
a[2]=x
print(a[1]["foo"])
print(a[2]["foo"])
结果是:
2
2
或者我期待:
1
2
我知道 a[1] 指向 x["foo"] 表的地址。然后,当我改变这个表的值时,变量 a[1] 指向新的值。
我如何告诉 Lua 我要分配 VALUE 而不是链接到地址?
还有一件事:如果 x 是“简单”变量,而不是数组,则传递值:
y = {}
x = 1
a = {}
a[1] = x
x = 2
a[2] = x
print(a[1])
print(a[2])
返回 1 2
【问题讨论】:
-
我认为你应该复制表格。 How do you copy a Lua table by value? - Stack Overflow 可能有用。