Lua 表1.鲁阿行动怪异

Lua 表1.鲁阿行动怪异,lua,lua-table,Lua,Lua Table,上面的例子简化了我的代码中的问题,通过从tbl2中删除索引,它也从tbl1中删除,这有什么原因吗?Lua中的变量是对对象的引用,因此a=b将名为a的变量设置为引用b引用的对象。如果b是一个表,那么在赋值之后a和b都指向同一个表对象。赋值tbl2=tbl1复制指向对象的指针,而不是对象本身。解决问题的方法是,没有意识到这一点。“” tbl1 = {1} tbl2 = tbl1 table.remove(tbl2,1) print(tbl1[1]) -- >> nill

上面的例子简化了我的代码中的问题,通过从tbl2中删除索引,它也从tbl1中删除,这有什么原因吗?

Lua中的变量是对对象的引用,因此
a=b
将名为
a
的变量设置为引用
b
引用的对象。如果
b
是一个表,那么在赋值之后
a
b
都指向同一个表对象。

赋值
tbl2=tbl1
复制指向对象的指针,而不是对象本身。解决问题的方法是,没有意识到这一点。“”
tbl1 = {1}

tbl2 = tbl1

table.remove(tbl2,1)

print(tbl1[1])
-- >> nill