在文件中我做了这样的代码:
Source = {}
Source[1] = { a = 1, b = 2, ... }
在另一个文件中,我会做下一个:
Table = {}
Table[1] = Source[1]
Table[2] = Source[1]
我使用此方法在Lua中创建对象。但是,它们并不是单独行动的,例如,我不能为这两个表赋予不同的a
值。
为什么呢?另外,我能做些什么呢?我想避免逐个定义表。
答案 0 :(得分:2)
原因是变量Table[1]
和Table[2]
只是对同一个表值的引用,它们不包含值。
要按值复制表格,请逐个复制值:
for k, v in pairs(Source[1]) do
Table[1][k] = v
Table[2][k] = v
end
有关复制表格的更多信息,请参阅How do you copy a Lua table by value?。