在我的代码中,我将一个变量设置为表的内容,如下所示:
colorTable = {{255, 255, 255}}
color = colorTable[1]
我的问题是当我修改color
的值时,它会更改colorTable
所以在开始时,colorTable[1][1]
等于255
,但在我运行之后:
color[1] = color[1] - 10
colorTable[1][1]
等于245
。
任何帮助表示赞赏。
答案 0 :(得分:5)
以下行在color
内的表格中创建引用(colorTable
):
color = colorTable[1]
我们只是操纵对值的引用,这并不表示任何复制方法。
如果我们改为尝试以下方法:
color = {table.unpack(colorTable[1])}
我们正在调用构造函数,并使用colorTable[1]
中包含255, 255, 255
的值解压缩填充它。然后,我们有一个包含这些值的 new 表,对它们执行算术不会影响colorTable
中的值:
print(colorTable[1][1])
结果:
255
随后:
color[1] = color[1] - 10
print(colorTable[1][1])
结果:
255