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.

Cambiar un valor de una tabla con un bucle en Lua

Estoy tratando de cambiar un valor dentro de una tabla pero no puedo.

Este es mi código:

table = {{x=2}, {y=3}, {z=2}}

function printTabValue(tab, index)
    for k, v in pairs(tab[index]) do
        print(k, v)
    end
end

for k, v in pairs(table[1]) do
    print(k,v)
    table[k] = 5
end

printTabValue(table,1)

Obtengo este resultado:

x       2
x       2

Entonces, el valor sigue siendo el mismo.

¿Cómo puedo editar el valor dentro de la tabla?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Estás intentando acceder a la clave de la tabla en lugar del valor. Para cambiar el valor dentro de la tabla, debes acceder al valor utilizando la clave y luego asignarle el nuevo valor. Aquí está el código corregido:

    table = {{x=2}, {y=3}, {z=2}}
    
    function printTabValue(tab, index)
        for k, v in pairs(tab[index]) do
            print(k, v)
        end
    end
    
    for k, v in pairs(table[1]) do
        print(k, v)
        table[1][k] = 5 -- accede al valor utilizando la clave y asigna el nuevo valor
    end
    
    printTabValue(table,1)
    

    Ahora la salida debería ser:

    x   2
    x   5
    

    Y el valor de x dentro de la tabla se actualiza a5.

Comments are closed.