如何定义按函数命名的变量?

时间:2015-10-08 05:26:14

标签: lua

我需要创建许多变量,我想按功能声明这些变量的名称。就像这样:

function DefineVariable(VariableName)
return VariableName = 123 end

我想要的功能是:

DefineVariable(weg423)
-- Result: weg423 = 123

但是我觉得这并不容易......这个功能不起作用。我想知道如何将其转化为工作功能。

而且,我也可以收到关于此的答案吗?

a = "blahblah"

...somehow...

DefineVarByValue(a)
-- Result: blahblah = 123

啊还有一个问题。如何将“表变量”更改为“字符串或数字变量”? (我的意思是'预期数字,得到表'错误......)

1 个答案:

答案 0 :(得分:1)

Lua中的所有简单类型都是按值传递的,因此您的DefineVariable函数获取变量weg423的当前值而不是其名称,这意味着您无法更改来自函数的weg423

如果这是一个全局变量,那么您可以传递该变量的名称(例如,DefineVariable('weg423')),然后该函数可以通过引用它来更改该变量的值作为_G_ENV表(_G[VariableName] = whatever)中的键。

我仍然没有看到这样做的重点。使用weg423 = 123没有错。