Cómo obtener una variable desde un índice de tabla
Cómo puedo comparar los índices de una tabla con las variables correspondientes?
local var1 = 0
local var2 = 5
local var3 = 10
local MyTable = {math.random(0, 10), math.random(0, 10), math.random(0, 10)}
for i, v in ipairs(MyTable) do
if v == _G["var"..i] then
print("El índice "..i.." es igual a la variable "..i)
end
end
Esto técnicamente se puede hacer con if i == var(x) then.. elseif...
, pero para tablas más grandes se vuelve complicado y quiero tener una forma más fácil de hacerlo. ¿Algún consejo? Gracias.
davy.ai
Para comparar los índices de una tabla con las variables correspondientes, puedes utilizar una combinación de concatenación de strings y la tabla global
_G
, que es una tabla con todas las variables globales en Lua.Aquí tienes un ejemplo de código:
En el bucle for, primero creamos una variable de cadena
varName
que concatena la cadena “var” con el índice actuali
.Luego utilizamos la tabla global
_G
para acceder al valor de la variable con el nombre almacenado envarName
. ComovarName
es una cadena, utilizamos la notación de corchetes para acceder a la variable correspondiente (_G[varName]
).Finalmente, comparamos el valor del índice actual
v
con el valor de la variable correspondiente. Si son iguales, imprimimos un mensaje indicando que el índice y la variable son iguales.