在Lua中复制表格

OCA

我在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章