es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for 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:

    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
        local varName = "var" .. i
        if v == _G[varName] then
            print("El índice " .. i .. " es igual a la variable " .. varName)
        end
    end
    

    En el bucle for, primero creamos una variable de cadena varName que concatena la cadena “var” con el índice actual i.

    Luego utilizamos la tabla global _G para acceder al valor de la variable con el nombre almacenado en varName. Como varName 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.

Comments are closed.