如何在 Lua 表中添加前缀?

我有一个 lua 文件,其内容是 lua 表格,如下所示: A={}, A.B={}, A.B.C=0;

问题是我想在每个上述语句之前添加前缀 XYZ。因此,在解析后,数据库应该有类似以下内容: XYZ.A={}, XYZ.A.B={}, XYZ.A.B.C={}

有什么想法吗?提前感谢。

点赞
用户1009479
用户1009479

我认为这是你想要的:

XYZ = {}
XYZ.A = {}
XYZ.A.B = {}
XYZ.A.B.C = 0
2013-07-08 11:42:17
用户752976
用户752976

如果您可以承受使用A来污染您的全局空间,那么可以稍后再分配它:

-- 加载文件
-- 如果 XYZ 不存在,XYZ = { A = A } 可能更简洁
XYZ.A = A
A = nil
2013-07-08 11:46:59
用户783743
用户783743

你可以这样简单地做:

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

如果你不想嵌套对象太深,那么可以这样做:

XYZ = {
    A = A
}

A = nil

这假设你已经在先前声明了对象 A

2013-07-08 11:51:12
用户107090
用户107090

你可以用 XYZ 环境直接加载文件:loadfile("mydata","t",XYZ)。请参阅手册中的 loadfile

这适用于 Lua 5.2。对于 Lua 5.1,需使用 loadfile 然后跟上 setfenv

2013-07-08 12:56:17