动态引用变量

时间:2019-09-25 18:51:18

标签: variables lua

我试图根据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

我试图获取变量值,但在所有示例中,我只能以字符串形式接收变量名。

1 个答案:

答案 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