我有一个 lua 文件,其内容是 lua 表,如下所示:
A={}
,
A.B={}
,
A.B.C=0;
,
问题是我想在上述每个语句之前添加前缀 XYZ。所以解析后数据库应该有这样的
东西:
XYZ.A={}
,,,,
XYZ.A.B={}
XYZ.A.B.C={}
有任何想法吗?提前致谢
XYZ
您可以使用as is environment:加载文件loadfile("mydata","t",XYZ)
。请参阅手册中的加载文件。
这适用于 Lua 5.2。对于 Lua 5.1,使用loadfile
后跟setfenv
.
如果你负担得起用 污染你的全局空间A
,只需稍后分配它:
-- load the file
-- if XYZ doesn't exist, XYZ = { A = A } would be probably shorter
XYZ.A = A
A = nil
我认为这就是你想要的:
XYZ = {}
XYZ.A = {}
XYZ.A.B = {}
XYZ.A.B.C = 0
你如何简单地做:
XYZ = {
A = {
B = {
C = 0
}
}
}
如果您不想将对象嵌套得太深,那么您可以这样做:
XYZ = {
A = A
}
A = nil
这假设您之前已经声明了该对象A
。