我试图根据Lua中函数的返回值动态引用变量。我有几个变量,可以单独引用它们,但是我试图清理代码并找到动态引用它们的方法。
我已经尝试了几种不同的方法来使它起作用,但老实说,我不确定它是否可以完成。在解决这个问题的所有地方,我只发现了有关创建动态变量的说明,而不是动态引用变量。
varExample_1 = 3,
varExample_2 = 3,
varExample_3 = 5,
varExample_5 = 4,
varExample_4 = 2,
newVar = "varExample_" .. GetExampleType(call)
--or more specifically
if 8 > varExample_ .. GetExampleType(call) then return false end
我试图获取变量值,但在所有示例中,我只能以字符串形式接收变量名。
答案 0 :(得分:2)
首先,请考虑使用表而不是全局变量(始终尽可能避免使用它们):
local varExample = {}
varExample[1] = 3,
varExample[2] = 3,
varExample[3] = 5,
varExample[5] = 4,
varExample[4] = 2,
甚至更好
local varExample = {3, 3, 5, 4, 2}
然后
if 8 > varExample[GetExampleType(call)] then return false end
但是您坚持使用全局变量,可以使用_G
来访问它们:
if 8 > _G["varExample_"..GetExampleType(call)] then