我在Lua如何使用对重复表的引用方面遇到麻烦。如果我有以下代码:
table = {}
table.hello = "Hello"
function MyFunction (myTable)
myTable.goodbye = "goodbye"
return myTable
end
table2 = MyFunction(table)
在此代码中,table2和table最终将具有完全相同的内容。我如何才能做到只有table2具有再见变量?
您将需要创建一个新表并将所有字段从旧表复制到该表中:
function MyFunction (oldTable)
local newTable = {}
for k,v in pairs(oldTable) do
newTable[k] = v
end
newTable.goodbye = "goodbye"
return newTable
end
我给出的示例仅进行浅表复制,因此,如果oldTable的字段也是可变表,则只能通过引用复制它们。有关更多信息,请参见http://lua-users.org/wiki/CopyTable
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句