4

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

问题是我想在上述每个语句之前添加前缀 XYZ。所以解析后数据库应该有这样的 东西: XYZ.A={},,,, XYZ.A.B={}XYZ.A.B.C={}

有任何想法吗?提前致谢

4

4 回答 4

4

XYZ您可以使用as is environment:加载文件loadfile("mydata","t",XYZ)。请参阅手册中的加载文件。

这适用于 Lua 5.2。对于 Lua 5.1,使用loadfile后跟setfenv.

于 2013-07-08T12:56:17.600 回答
3

如果你负担得起用 污染你的全局空间A,只需稍后分配它:

-- load the file
-- if XYZ doesn't exist, XYZ = { A = A } would be probably shorter
XYZ.A = A
A = nil
于 2013-07-08T11:46:59.537 回答
2

我认为这就是你想要的:

XYZ = {}
XYZ.A = {}
XYZ.A.B = {}
XYZ.A.B.C = 0
于 2013-07-08T11:42:17.380 回答
1

你如何简单地做:

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

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

XYZ = {
    A = A
}

A = nil

这假设您之前已经声明了该对象A

于 2013-07-08T11:51:12.207 回答