Les taules són una de les estructures de dades més potents i flexibles en Lua. Són utilitzades per emmagatzemar arrays, diccionaris, llistes, i fins i tot objectes. En aquest tema, aprendrem què són les taules, com crear-les, accedir-hi, modificar-les i utilitzar-les en diferents contextos.
Què és una Taula?
Una taula en Lua és una estructura de dades que pot emmagatzemar valors de qualsevol tipus, incloent altres taules. Les taules són dinàmiques, és a dir, poden canviar de mida durant l'execució del programa.
Creació de Taules
Per crear una taula en Lua, simplement utilitzem les claus {}
. Aquí teniu alguns exemples:
-- Taula buida local taula_buida = {} -- Taula amb valors inicials local taula_valors = {1, 2, 3, 4, 5} -- Taula amb claus i valors local taula_claus_valors = { nom = "Joan", edat = 30, professió = "Enginyer" }
Accés a Elements de la Taula
Podem accedir als elements d'una taula utilitzant claus. Les claus poden ser números o cadenes de text.
local taula = {10, 20, 30, 40, 50} -- Accés per índex numèric print(taula[1]) -- Sortida: 10 print(taula[3]) -- Sortida: 30 local persona = { nom = "Anna", edat = 25, professió = "Dissenyadora" } -- Accés per clau de cadena print(persona["nom"]) -- Sortida: Anna print(persona.edat) -- Sortida: 25
Modificació de Taules
Podem afegir, modificar o eliminar elements d'una taula de manera molt senzilla.
local taula = {1, 2, 3} -- Afegir un nou element taula[4] = 4 print(taula[4]) -- Sortida: 4 -- Modificar un element existent taula[2] = 20 print(taula[2]) -- Sortida: 20 -- Eliminar un element taula[3] = nil print(taula[3]) -- Sortida: nil
Iteració sobre Taules
Podem utilitzar bucles per iterar sobre els elements d'una taula. Lua proporciona diverses maneres de fer-ho.
for
numèric
pairs
i ipairs
local taula = {10, 20, 30, 40, 50} -- Utilitzant ipairs per iterar sobre arrays for i, v in ipairs(taula) do print(i, v) end local persona = { nom = "Anna", edat = 25, professió = "Dissenyadora" } -- Utilitzant pairs per iterar sobre taules amb claus de cadena for k, v in pairs(persona) do print(k, v) end
Exercicis Pràctics
Exercici 1: Creació i Accés a Taules
- Crea una taula anomenada
cotxes
amb els següents elements: "Toyota", "Honda", "Ford". - Afegeix un nou cotxe "Chevrolet" a la taula.
- Modifica el segon element de la taula per "Hyundai".
- Elimina el tercer element de la taula.
- Itera sobre la taula i imprimeix tots els elements.
Solució
local cotxes = {"Toyota", "Honda", "Ford"} -- Afegir un nou cotxe cotxes[4] = "Chevrolet" -- Modificar el segon element cotxes[2] = "Hyundai" -- Eliminar el tercer element cotxes[3] = nil -- Iterar sobre la taula for i, v in ipairs(cotxes) do print(v) end
Exercici 2: Taules amb Claus de Cadena
- Crea una taula anomenada
llibre
amb les següents claus i valors:títol
= "El Senyor dels Anells",autor
= "J.R.R. Tolkien",any
= 1954. - Afegeix una nova clau
gènere
amb el valor "Fantasia". - Modifica el valor de la clau
any
a 1955. - Elimina la clau
gènere
. - Itera sobre la taula i imprimeix totes les claus i valors.
Solució
local llibre = { títol = "El Senyor dels Anells", autor = "J.R.R. Tolkien", any = 1954 } -- Afegir una nova clau llibre.gènere = "Fantasia" -- Modificar el valor de la clau any llibre.any = 1955 -- Eliminar la clau gènere llibre.gènere = nil -- Iterar sobre la taula for k, v in pairs(llibre) do print(k, v) end
Conclusió
Les taules són una eina fonamental en Lua que permeten emmagatzemar i gestionar dades de manera flexible i eficient. Hem après a crear taules, accedir-hi, modificar-les i iterar sobre els seus elements. Amb aquests coneixements, estem preparats per explorar conceptes més avançats com les metataules i els metamètodes en el següent tema.
Curs de Programació en Lua
Mòdul 1: Introducció a Lua
Mòdul 2: Conceptes Bàsics
Mòdul 3: Conceptes Intermedis
Mòdul 4: Conceptes Avançats
- Coroutines
- Programació Orientada a Objectes en Lua
- Tècniques de Depuració
- Optimització del Rendiment
- Ús de l'API C de Lua
Mòdul 5: Aplicacions Pràctiques
- Construcció d'un Joc Simple
- Scripting en Motors de Joc
- Automatització de Tasques amb Lua
- Integració de Lua amb Altres Llenguatges