将变量从 table a 复制到 table b 并保留 b 的现有键

Copy vars from table a to table b retaining b's existing keys

我正在尝试将源 table 的内容复制到目标 table,覆盖相同的密钥并完整保留不同的密钥。我搞砸了一些事情,但无法弄清楚。有人可以帮助我吗?

local source = {
  version = 1,
  nest = {
    a = 5,
    b = 1,
    c = 0
    },
}

local dest = {
  version = 0,
  doesNotChange = 9,
  nest = {
    a = 0,
    b = 0,
    c = 0,
    d = "does not change"
  },
}

您可以使用 generic for statement 来实现您想要的效果。

循环将遍历 sourceTable 中的所有键并将相应的值分配给 destinationTable。由于您只索引 sourceTable 的键,因此您不能覆盖具有唯一键的 destinationTable 字段,但您可以覆盖两个表中都存在的字段并添加仅存在于 sourceTable 中的新字段。

for k,v in pairs(sourceTable) do

  destinationTable[k] = v

end