我怎样才能使2张“印刷品”真实地体现出来?
码:
Config = {}
Config.option1.general = true
Config.option2.general = false
print(Config.option1.general)
print('Config.'..'option1'..'.general')
输出:
true
Config.option1.general
请原谅我的无知
目的是创建一个函数,您可以为其提供选项,并使用相应列表的变量执行代码。
只需创建一个将选项字符串作为输入的函数,然后将该字符串用作Config
表中的键即可:
function getOption (opt)
return Config[opt].general
end
然后,您可以根据需要使用返回值:
> getOption('option1')
true
> print(getOption('option1'))
true
> if (getOption('option1')) then print 'Yay!' else print 'Aw...' end
Yay!
如果您想过着危险的生活,则可以使用它load
来运行字符串中的一部分代码。但是,将此功能与用户输入一起使用会带来安全问题。
只需编写一个函数,该函数接受一个指定选项的字符串,然后使用该输入来构成表示块的字符串。该load
函数返回以块为主体的函数,因此您将需要调用该返回的函数以从块中获取结果:
function getOption (opt)
local cmd = 'Config.' .. opt .. '.general'
return load('return ' .. cmd)()
end
使用getOption('option1')
,该cmd
字符串变为'Config.option1.general'
,并将其与串联'return '
以创建'return Config.option1.general'
要传递给的块load
。该语句load('return Config.option1.general')()
调用由返回的函数load
,并且返回的值再次从该getOption
函数返回。
样本互动:
> getOption('option1')
true
> getOption('option2')
false
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句