在一个文件中我做了这样的代码:
Source = {}
Source[1] = { a = 1, b = 2, ... }
在另一个文件中,我执行以下操作:
Table = {}
Table[1] = Source[1]
Table[2] = Source[1]
我使用这种方法在 Lua 中创建对象。虽然,它们不会单独行动,例如,我不能为两个表提供不同的 a
值。
为什么?另外,我能为它做什么?我想避免一张一张地定义表格。
最佳答案
原因是变量 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? .
关于class - 为什么我不能制作单独的表格副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900975/