table.remove in lua表现得很奇怪

时间:2014-08-03 22:30:10

标签: lua lua-table

tbl1 = {1}

tbl2 = tbl1

table.remove(tbl2,1)

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

上面的例子是我的代码中的问题的简化,通过从tbl2中删除索引,它也从tbl1中删除,是否有理由发生这种情况?

1 个答案:

答案 0 :(得分:3)

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