En aquest tema, aprendrem les bases de la sintaxi i l'estructura de Lua. Aquest és un pas fonamental per a qualsevol programador que vulgui dominar aquest llenguatge. Ens centrarem en els següents aspectes:
- Comentaris
- Variables
- Tipus de dades
- Operadors
- Estructures de control
- Funcions
- Comentaris
Els comentaris són línies de codi que no s'executen i s'utilitzen per explicar el codi o deixar notes. Lua suporta dos tipus de comentaris:
- Comentaris de línia única: Comencen amb
--
.
-- Això és un comentari de línia única print("Hola, món!") -- Això també és un comentari de línia única
- Comentaris de múltiples línies: Comencen amb
--[[
i acaben amb]]
.
- Variables
Les variables en Lua es declaren simplement assignant un valor a un nom. No cal especificar el tipus de dada, ja que Lua és un llenguatge de tipatge dinàmic.
-- Declaració de variables local nombre = "Joan" local edat = 25 local esEstudiant = true print(nombre) -- Imprimeix: Joan print(edat) -- Imprimeix: 25 print(esEstudiant) -- Imprimeix: true
- Tipus de Dades
Lua té diversos tipus de dades bàsics:
- nil: Representa una absència de valor.
- boolean:
true
ofalse
. - number: Nombres (enters i de punt flotant).
- string: Cadenes de text.
- table: Taules (estructures de dades).
- function: Funcions.
- userdata: Dades definides per l'usuari.
- thread: Fils d'execució.
local a = nil local b = true local c = 10 local d = "Hola" local e = {1, 2, 3} local f = function() print("Funció") end
- Operadors
Lua suporta diversos operadors:
- Aritmètics:
+
,-
,*
,/
,%
(mòdul),^
(exponent). - Relacionals:
==
,~=
,<
,>
,<=
,>=
. - Lògics:
and
,or
,not
. - De concatenació:
..
(per unir cadenes de text).
local x = 10 local y = 5 -- Operadors aritmètics print(x + y) -- Imprimeix: 15 print(x - y) -- Imprimeix: 5 print(x * y) -- Imprimeix: 50 print(x / y) -- Imprimeix: 2 print(x % y) -- Imprimeix: 0 print(x ^ y) -- Imprimeix: 100000 -- Operadors relacionals print(x == y) -- Imprimeix: false print(x ~= y) -- Imprimeix: true print(x > y) -- Imprimeix: true -- Operadors lògics print(x > 0 and y > 0) -- Imprimeix: true print(x > 0 or y < 0) -- Imprimeix: true print(not (x > 0)) -- Imprimeix: false -- Operador de concatenació local str1 = "Hola" local str2 = "Món" print(str1 .. " " .. str2) -- Imprimeix: Hola Món
- Estructures de Control
Condicionals
Lua utilitza if
, elseif
i else
per a les estructures condicionals.
local edat = 20 if edat < 18 then print("Ets menor d'edat") elseif edat < 65 then print("Ets adult") else print("Ets major") end
Bucles
Lua suporta diversos tipus de bucles: while
, repeat...until
i for
.
- while:
- repeat...until:
- for:
- Funcions
Les funcions en Lua es defineixen amb la paraula clau function
.
-- Definició d'una funció local function saluda(nom) print("Hola, " .. nom) end -- Crida a la funció saluda("Joan") -- Imprimeix: Hola, Joan
Les funcions també poden retornar valors.
local function suma(a, b) return a + b end local resultat = suma(5, 3) print(resultat) -- Imprimeix: 8
Exercicis Pràctics
Exercici 1: Comentaris i Variables
- Escriu un comentari de línia única que expliqui què fa el següent codi.
- Declara una variable
nom
i assigna-li el teu nom. - Declara una variable
edat
i assigna-li la teva edat. - Imprimeix les variables
nom
iedat
.
Exercici 2: Operadors i Estructures de Control
- Declara dues variables
a
ib
amb valors numèrics. - Utilitza operadors aritmètics per sumar, restar, multiplicar i dividir aquestes variables.
- Escriu una estructura condicional que imprimeixi si
a
és major, menor o igual ab
.
Exercici 3: Funcions
- Defineix una funció
multiplica
que prengui dos arguments i retorni el seu producte. - Crida la funció amb dos nombres i imprimeix el resultat.
Solucions
Solució Exercici 1
-- Aquest codi declara variables i les imprimeix local nom = "Joan" local edat = 25 print(nom) -- Imprimeix: Joan print(edat) -- Imprimeix: 25
Solució Exercici 2
local a = 10 local b = 5 -- Operadors aritmètics print(a + b) -- Imprimeix: 15 print(a - b) -- Imprimeix: 5 print(a * b) -- Imprimeix: 50 print(a / b) -- Imprimeix: 2 -- Estructura condicional if a > b then print("a és major que b") elseif a < b then print("a és menor que b") else print("a és igual a b") end
Solució Exercici 3
local function multiplica(a, b) return a * b end local resultat = multiplica(4, 5) print(resultat) -- Imprimeix: 20
Conclusió
En aquesta secció, hem après la sintaxi i l'estructura bàsiques de Lua, incloent comentaris, variables, tipus de dades, operadors, estructures de control i funcions. Aquests conceptes són fonamentals per a qualsevol programador que vulgui treballar amb Lua. En el següent mòdul, aprofundirem en els conceptes bàsics de programació amb Lua.
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