我需要创建许多变量,我想按功能声明这些变量的名称。就像这样:
function DefineVariable(VariableName)
return VariableName = 123 end
我想要的功能是:
DefineVariable(weg423)
-- Result: weg423 = 123
但是我觉得这并不容易......这个功能不起作用。我想知道如何将其转化为工作功能。
而且,我也可以收到关于此的答案吗?
a = "blahblah"
...somehow...
DefineVarByValue(a)
-- Result: blahblah = 123
啊还有一个问题。如何将“表变量”更改为“字符串或数字变量”? (我的意思是'预期数字,得到表'错误......)
答案 0 :(得分:1)
Lua中的所有简单类型都是按值传递的,因此您的DefineVariable
函数获取变量weg423
的当前值而不是其名称,这意味着您无法更改来自函数的weg423
。
如果这是一个全局变量,那么您可以传递该变量的名称(例如,DefineVariable('weg423')
),然后该函数可以通过引用它来更改该变量的值作为_G
或_ENV
表(_G[VariableName] = whatever
)中的键。
我仍然没有看到这样做的重点。使用weg423 = 123
没有错。