Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 动态引用变量_Variables_Lua - Fatal编程技术网

Variables 动态引用变量

Variables 动态引用变量,variables,lua,Variables,Lua,我试图根据Lua中函数的返回动态引用一个变量。我有几个变量,我可以分别引用它们,但我正在尝试清理代码并找到一种动态引用它们的方法 我已经尝试了几种不同的方法来实现这个功能,但我真的不确定它是否可以实现。无论我在哪里寻找解决这个问题的方法,我都只能找到关于创建动态变量而不是动态引用变量的说明 varExample_1=3, varExample_2=3, varExample_3=5, varExample_5=4, varExample_4=2, newVar=“varExample”。。Get

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

我已经尝试了几种不同的方法来实现这个功能,但我真的不确定它是否可以实现。无论我在哪里寻找解决这个问题的方法,我都只能找到关于创建动态变量而不是动态引用变量的说明

varExample_1=3,
varExample_2=3,
varExample_3=5,
varExample_5=4,
varExample_4=2,
newVar=“varExample”。。GetExampleType(调用)
--或者更具体地说
如果8>变量示例。。GetExampleType(调用)然后返回FalseEnd

我试图得到变量值,但是对于所有的例子,我只能得到变量名作为字符串。

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

甚至更好

local varExample = {3, 3, 5, 4, 2}
然后

if 8 > varExample[GetExampleType(call)] then return false end
但是您坚持使用全局变量,可以使用
访问它们:

if 8 > _G["varExample_"..GetExampleType(call)] then

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

甚至更好

local varExample = {3, 3, 5, 4, 2}
然后

if 8 > varExample[GetExampleType(call)] then return false end
但是您坚持使用全局变量,可以使用
访问它们:

if 8 > _G["varExample_"..GetExampleType(call)] then

通过使用表而不是全局变量,您的生活会变得更加轻松。我正在保存这些变量的选项,并使用varExample作为默认值。我认为
varExample[1]
也非常可读,所以没有理由不使用表?
如果8>\u G[“varExample”..GetExampleType(call)],那么
请注意
\u G[…]
part。使用table而不是全局变量会让你的生活变得更轻松。我正在保存这些变量的选项,并使用varExample\u*作为默认值。我认为
varExample[1]
也很可读,所以没有理由不使用table?
if 8>\u G[“varExample\u2.”GetExampleType(调用)]然后
注意
\u G[…]
部分。无法按建议使用,因为变量位于现有设置表中,每次尝试时都会出错。但是,它确实让我想到使用辅助表,将现有变量分配到该表中,然后使用该设置表。非常感谢您的帮助。无法按建议使用,因为变量位于现有设置表中,每次尝试时都会出错。但是,它确实让我想到使用辅助表,并将现有变量分配到该表中,然后使用有效的设置表。非常感谢你的帮助。