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
students
que 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 end
Ejercicio 2: Tablas Anidadas
Instrucciones:
- Crea una tabla llamada
classroom
que 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