Menu
CoddyTech

Ámbito y bloques

Parte de la sección Fundamentos del Journey de Lua de Coddy. Lección 86 de 90.

En Lua, puedes crear nuevos ámbitos en cualquier parte de tu código usando bloques do...end. Estos bloques te permiten controlar exactamente dónde se puede acceder a tus variables locales, dándote un control preciso sobre el ámbito de las variables.

Así es como puedes crear un nuevo ámbito con un bloque do...end:

local outerVar = "I'm outside"

do
    local innerVar = "I'm inside"
    print(outerVar)  -- Esto funciona
    print(innerVar)  -- Esto también funciona
end

print(outerVar)  -- Esto funciona
print(innerVar)  -- Imprime nil: innerVar solo existe dentro del bloque

El aspecto más poderoso del ámbito es que puedes tener variables locales con el mismo nombre en distintos bloques y siguen siendo completamente independientes:

local name = "Alice"

do
    local name = "Bob"  -- ¡Variable diferente!
    print(name)  -- Imprime "Bob"
end

print(name)  -- Imprime "Alice"

Cada bloque do...end crea su propio entorno aislado para las variables locales. Las variables declaradas dentro de un bloque no pueden salir al ámbito externo, mientras que se puede acceder a las variables de los ámbitos externos desde los bloques internos.

challenge icon

Desafío

Fácil

Crea bloques do...end anidados para demostrar cómo las variables locales con el mismo nombre permanecen completamente separadas en distintos ámbitos.

Primero, crea una variable local llamada playerLevel con el valor 10 en el ámbito externo e imprímela.

Después, crea un bloque do...end y, dentro de él:

  • Declara una nueva variable local también llamada playerLevel con el valor 25
  • Imprime esta variable interna playerLevel

Después de que termine el bloque interno, imprime de nuevo la variable externa playerLevel para mostrar que no cambió.

Esto demuestra que las variables locales con nombres idénticos en distintos ámbitos son completamente independientes: la variable interna no afecta a la externa.

Pruébalo tú mismo

-- TODO: Escribe tu código aquí
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Lua online