如何给Lua表添加前缀?

4
我有一个Lua文件,其内容是如下的Lua表格: A={}, A.B={}, A.B.C=0;,
问题在于我想在每个上述语句之前添加前缀XYZ。所以解析后的数据库应该类似于: XYZ.A={}, XYZ.A.B={}, XYZ.A.B.C={},
有什么想法吗?谢谢提前!
4个回答

4
你可以使用 XYZ 作为环境加载文件: loadfile("mydata","t",XYZ)。请参阅手册中的loadfile。对于Lua 5.1版本,请使用 loadfile 后跟 setfenv

3
如果您可以承受将全局空间污染为A,那么可以稍后再分配它:
-- load the file
-- if XYZ doesn't exist, XYZ = { A = A } would be probably shorter
XYZ.A = A
A = nil

2
我想这就是您需要的内容:

我认为这正是您所需:

XYZ = {}
XYZ.A = {}
XYZ.A.B = {}
XYZ.A.B.C = 0

1
你想要的翻译是:“你为什么不直接这样做:”并保留HTML格式。
XYZ = {
    A = {
        B = {
            C = 0
        }
    }
}

如果您不想嵌套对象太深,可以这样做:
XYZ = {
    A = A
}

A = nil

这假设您已经先声明了对象A

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接