Lua-将属性加载到表中

时间:2018-11-24 14:20:36

标签: properties lua

我想加载一个包含全局变量的config.lua文件,以便可以包装然后将这些变量访问到本地表中。

config.lua看起来像这样:

prop01=value01
prop02=value02

script.lua看起来像这样

-- fragment starts --
local config = {
   -- something goes here
}
-- fragment end --

print (config.prop01) -- should print "value01"
print (config.prop02) -- should print "value02"

如何更改“片段”以获得预期的打印输出?

1 个答案:

答案 0 :(得分:1)

在加载配置文件时交换环境。

在lua 5.3中,它是通过here中记录的功能loadloadfile完成的:

local config={}
local config_init_fun = loadfile('config.lua',"configuration file",config)
config_init_fun()

在lua 5.1中,您将需要使用setfenv函数:

local config={}
local config_init_fun = loadfile('config.lua',"configuration file")
config_init_fun = setfenv (config_init_fun, config)
config_init_fun()

可能不需要分配setfenv结果,但我手头没有lua5.1进行验证。

所有假设config.lua是有效的脚本都在设置一些全局变量。