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:
trueofalse. - 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")
endBucles
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, JoanLes funcions també poden retornar valors.
local function suma(a, b)
return a + b
end
local resultat = suma(5, 3)
print(resultat) -- Imprimeix: 8Exercicis 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
nomi assigna-li el teu nom. - Declara una variable
edati assigna-li la teva edat. - Imprimeix les variables
nomiedat.
Exercici 2: Operadors i Estructures de Control
- Declara dues variables
aibamb 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ó
multiplicaque 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")
endSolució Exercici 3
local function multiplica(a, b)
return a * b
end
local resultat = multiplica(4, 5)
print(resultat) -- Imprimeix: 20Conclusió
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
