表格中包含表格名字

我创建了一个 Lua 程序来跟踪我父亲正在购买的房产的需求,并且我想在表格中创建内部带名称的表格。所以当我试图通过一个我创建的函数来添加它时,它期望 )= 的位置。

--我用来存储所有内容的表格
repair={}
--我用来创建内部表格的函数
function rAdd(name)
 table.insert(repair, name)
end
--我用来向这些表格中添加数据的函数
function tAdd(table, name)
 table.insert(table, name)
end
rAdd(wall={})
tAdd(wall, "需要漆工作")

当我尝试添加 (rAdd(wall={})) 时,它期望我通过 ) 来结束参数。请帮忙!

点赞
用户752976
用户752976

与其折腾 table.insert,不如直接利用 Lua 的表格可以像表格一样访问的特性:

repair["wall"] = {}

这样就可以实际插入了:

table.insert(repair["wall"], "Due for a paint job")

如果你想用函数隐藏全局变量:

function rAdd(name, value)
    repair[name] = value
end

rAdd("wall", {});

或者如果你真的想用表格形式传递条目:

function rAddN(entries)
    for k,v in pairs(entries) do
        repair[k] = v
    end
end

rAddN({ wall = {} })

注意,在这种情况下可以省略括号:

rAddN { wall = {} }
2015-10-20 15:13:37