如何通过使用其他变量的字符串来声明变量的名称?


function defineVarByString(variableName)
variableName = 123
end

defineVarByString("Hello")

-- 期望结果:Hello = 123
-- 实际输出结果:variableName = 123

你能将这个函数变成可用的吗?我想自己做,但是语言障碍让我无法学习metatable和_G和_ENV...

在这种情况下,我可以只写 'Hello = 123'。但实际情况是,由于某种原因,我需要通过许多不能预料的字符串定义许多变量名。

点赞
用户5404436
用户5404436
```lua
function DynamicVariable(VarName)
_G[VarName] = 123
end

DynamicVariable('Hello')
print(Hello)

-- Output => 123

``` 函数DynamicVariable可以在全局环境中创建一个动态变量。传入变量名字符串,将该变量名作为键,相应的值设为123。在下一行,打印出变量Hello的值,得到输出结果123

更多信息:http://www.lua.org/pil/14.1.html

2015-10-08 17:56:49