lua中的表重写

我有一个无法解决的问题。

如果我使用以下代码两次或三次:

Core:CreateButton({ Name = "Spell__Slot", Slot = 1, OffSetY = 0, OffSetX = 0, }) Core:CreateButton({ Name = "Item__Slot", Slot = 2, OffSetY = 50, OffSetX = 0, }) Core:CreateButton({ Name = "Mount__Slot", Slot = 3, OffSetY = 0, OffSetX = 50, }) Core:CreateButton({ Name = "Pet__Slot", Slot = 4, OffSetY = 50, OffSetX = 50, })

所有表“SavedData”将被最后一个覆盖:

http://i64.tinypic.com/35hegib.jpg

function Core:CreateButton(Saved)
-- Usage.
if type(Saved) ~= 'table' and type(Saved.Name) ~= 'string' and type(Saved.Slot) ~= 'number' then
    print("Core:CreateButton({Saved}): 按钮必须有一个有效的名称[string]和槽[number]。")
    return
end
-- Create Table.
if not self.Region then self.Region = {} end
if not self.Region[Saved.Slot] then
    -- Unique Table.
    self.Region[Saved.Slot] = {}
    self.Region[Saved.Slot].Data = {}
    self.Region[Saved.Slot].Region = {}
    self.Region[Saved.Slot].SavedData = DefaultValue
    -- Table Merge.
    for key, value in pairs(Saved) do
        self.Region[Saved.Slot].SavedData[key] = value
    end
end end
点赞
用户6834680
用户6834680
   self.Region[Saved.Slot].SavedData = {}
   -- 表合并。
   for key, value in pairs(DefaultValue) do
       self.Region[Saved.Slot].SavedData[key] = value
   end
   -- 表合并。
   for key, value in pairs(Saved) do
       self.Region[Saved.Slot].SavedData[key] = value
   end
2018-08-03 15:17:57