class - 为什么我不能制作单独的表格副本?

标签 class inheritance lua lua-table

在一个文件中我做了这样的代码:

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/

相关文章:

C++ 为什么同一个变量的值不同?

java - 类声明中的 ArrayList<Product> 如何访问 ArrayList

ios - 不初始化 NSMutableArray 行为异常的类的属性?

java - 如何在 Java 中嵌入 Lua?

lua - 如何在lua中声明一个包含X个元素的数组

c++ - 在类中使用数组时出现问题 (C++)

c# - 多继承无多重继承无代码重复

c++ - 为什么这个 typedef 允许我在此模板中使用基类成员函数指针?

css - 行高属性是否继承自body

c++ - 从 C++ 访问 Lua 中的表