Las tablas son una de las estructuras de datos más poderosas y flexibles en Lua. Se utilizan para representar arrays, listas, diccionarios, conjuntos y otros tipos de datos complejos. En este módulo, aprenderás cómo crear y manipular tablas en Lua.
- ¿Qué es una Tabla?
En Lua, una tabla es una estructura de datos que puede almacenar valores de diferentes tipos, incluyendo números, cadenas, funciones y otras tablas. Las tablas en Lua son implementadas como arrays asociativos, lo que significa que puedes usar cualquier valor como índice.
Características Clave de las Tablas:
- Flexibilidad: Pueden almacenar cualquier tipo de dato.
- Dinamismo: Pueden cambiar de tamaño dinámicamente.
- Unicidad: Cada tabla es única, incluso si tienen los mismos contenidos.
- Creación de Tablas
Puedes crear una tabla vacía utilizando la sintaxis {}.
También puedes inicializar una tabla con valores.
- Acceso a Elementos de una Tabla
Puedes acceder a los elementos de una tabla utilizando índices. Lua utiliza índices basados en 1, lo que significa que el primer elemento tiene el índice 1.
También puedes usar cadenas como índices.
- Modificación de Tablas
Puedes agregar, modificar o eliminar elementos de una tabla de manera dinámica.
Agregar Elementos
Modificar Elementos
Eliminar Elementos
- Iteración sobre Tablas
Puedes iterar sobre los elementos de una tabla utilizando bucles for.
Iteración Numérica
Iteración Genérica
- Tablas Anidadas
Las tablas pueden contener otras tablas, lo que permite la creación de estructuras de datos complejas.
- Ejercicios Prácticos
Ejercicio 1: Crear y Manipular una Tabla
Instrucciones:
- Crea una tabla llamada
studentsque contenga los nombres de tres estudiantes. - Agrega un cuarto estudiante a la tabla.
- Modifica el nombre del segundo estudiante.
- Elimina el tercer estudiante.
- Imprime todos los nombres de los estudiantes restantes.
Solución:
local students = {"Alice", "Bob", "Charlie"}
students[4] = "David"
students[2] = "Bobby"
students[3] = nil
for i = 1, #students do
if students[i] then
print(students[i])
end
endEjercicio 2: Tablas Anidadas
Instrucciones:
- Crea una tabla llamada
classroomque contenga dos tablas anidadas, cada una representando a un estudiante con su nombre y edad. - Agrega un tercer estudiante a la tabla
classroom. - Imprime los nombres y edades de todos los estudiantes.
Solución:
local classroom = {
{name = "Alice", age = 20},
{name = "Bob", age = 22}
}
table.insert(classroom, {name = "Charlie", age = 23})
for i, student in ipairs(classroom) do
print(student.name, student.age)
end
- Resumen
En esta sección, hemos cubierto los conceptos básicos de las tablas en Lua, incluyendo su creación, acceso, modificación, iteración y anidación. Las tablas son una herramienta fundamental en Lua y su comprensión es crucial para avanzar en el aprendizaje del lenguaje.
En el próximo módulo, exploraremos las metatablas y metamétodos, que permiten modificar el comportamiento predeterminado de las tablas y añadir funcionalidades avanzadas.
Curso de Programación en Lua
Módulo 1: Introducción a Lua
Módulo 2: Conceptos Básicos
Módulo 3: Conceptos Intermedios
Módulo 4: Conceptos Avanzados
- Corutinas
- Programación Orientada a Objetos en Lua
- Técnicas de Depuración
- Optimización del Rendimiento
- Uso de la API C de Lua
Módulo 5: Aplicaciones Prácticas
- Construcción de un Juego Simple
- Scripting en Motores de Juegos
- Automatización de Tareas con Lua
- Integración de Lua con Otros Lenguajes
