将表格a中的变量复制到表格b,保留现有密钥

时间:2017-07-04 05:48:43

标签: lua lua-table

我正在尝试将源表的内容复制到dest表,覆盖相同的键并保持不同的键完好无损。我曾经搞过一些事情,但无法解决这个问题。有人可以帮帮我吗?

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"
  },
}

1 个答案:

答案 0 :(得分:2)

您可以使用generic for statement来达到您想要的效果。

循环将遍历sourceTable中的所有键,并将相应的值指向destinationTable。由于您只索引sourceTable的键,因此您无法覆盖具有唯一键的destinationTable字段,但您会覆盖两个表中存在的字段并添加仅存在于sourceTable中的新字段。

for k,v in pairs(sourceTable) do

  destinationTable[k] = v

end