Lua - загрузить свойства в таблицу - PullRequest
0 голосов
/ 24 ноября 2018

Я хотел бы загрузить файл 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 голосов
/ 24 ноября 2018

Замена среды при загрузке файла конфигурации.

В lua 5.3 это делается с помощью функций load или loadfile, задокументированных здесь :

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

В lua 5.1 вам нужно будет использовать setfenvfunction:

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 является допустимымскрипт, который устанавливает некоторые глобальные переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...