动态引用变量

我正在尝试根据 Lua 函数的返回值动态引用变量。我有几个变量,我可以单独引用它们所有,但是我正在试图清理代码并找到一种动态引用它们的方法。

我尝试过几种不同的方法来使其正常运作,但是我真的不确定它是否可以被做到。在我寻找解决此问题的方法时,我只找到了有关创建动态变量而不是引用变量的说明。

varExample_1 = 3,
varExample_2 = 3,
varExample_3 = 5,
varExample_5 = 4,
varExample_4 = 2,

newVar = "varExample_" .. GetExampleType(call)

--或更具体地

if 8 > varExample_ .. GetExampleType(call) then return false end

我正试图获取变量值,但是对于所有示例,我只能获得变量名称作为字符串。

点赞
用户5697743
用户5697743

首先,考虑使用表而不是全局变量(尽可能避免使用它们):

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
2019-09-25 19:53:53