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

我需要创建许多变量,并且想要通过函数声明这些变量的名称。就像这样:

function DefineVariable(VariableName)
return VariableName = 123 end

我想要函数的结果是:

DefineVariable(weg423)
-- 结果:weg423 = 123

但是这并不像我想的那样简单。这个函数没有起作用。我想知道如何让它成为可用的函数。

并且,我也想知道关于这个问题的答案。

a = "blahblah"

...某种方式...

DefineVarByValue(a)
-- 结果:blahblah = 123

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

点赞
用户1442917
用户1442917

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

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

我仍然不明白以这种方式做的意义在哪里。使用 weg423 = 123 没有任何问题。

2015-10-08 05:55:15