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.

  1. ¿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.

  1. Creación de Tablas

Puedes crear una tabla vacía utilizando la sintaxis {}.

local myTable = {}

También puedes inicializar una tabla con valores.

local fruits = {"apple", "banana", "cherry"}

  1. 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.

print(fruits[1])  -- Imprime "apple"

También puedes usar cadenas como índices.

local person = {name = "John", age = 30}
print(person["name"])  -- Imprime "John"

  1. Modificación de Tablas

Puedes agregar, modificar o eliminar elementos de una tabla de manera dinámica.

Agregar Elementos

fruits[4] = "date"
print(fruits[4])  -- Imprime "date"

Modificar Elementos

fruits[1] = "apricot"
print(fruits[1])  -- Imprime "apricot"

Eliminar Elementos

fruits[2] = nil
print(fruits[2])  -- Imprime "nil"

  1. Iteración sobre Tablas

Puedes iterar sobre los elementos de una tabla utilizando bucles for.

Iteración Numérica

for i = 1, #fruits do
    print(fruits[i])
end

Iteración Genérica

for key, value in pairs(person) do
    print(key, value)
end

  1. Tablas Anidadas

Las tablas pueden contener otras tablas, lo que permite la creación de estructuras de datos complejas.

local matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
}

print(matrix[1][2])  -- Imprime "2"

  1. Ejercicios Prácticos

Ejercicio 1: Crear y Manipular una Tabla

Instrucciones:

  1. Crea una tabla llamada students que contenga los nombres de tres estudiantes.
  2. Agrega un cuarto estudiante a la tabla.
  3. Modifica el nombre del segundo estudiante.
  4. Elimina el tercer estudiante.
  5. 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:

  1. Crea una tabla llamada classroom que contenga dos tablas anidadas, cada una representando a un estudiante con su nombre y edad.
  2. Agrega un tercer estudiante a la tabla classroom.
  3. 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

  1. 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.

© Copyright 2024. Todos los derechos reservados