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:

  1. Comentaris
  2. Variables
  3. Tipus de dades
  4. Operadors
  5. Estructures de control
  6. Funcions

  1. 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 ]].
--[[
Això és un comentari
de múltiples línies
]]
print("Hola, món!")

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

  1. Tipus de Dades

Lua té diversos tipus de dades bàsics:

  • nil: Representa una absència de valor.
  • boolean: true o false.
  • 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

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

  1. 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:
local i = 1
while i <= 5 do
    print(i)
    i = i + 1
end
  • repeat...until:
local i = 1
repeat
    print(i)
    i = i + 1
until i > 5
  • for:
for i = 1, 5 do
    print(i)
end

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

  1. Escriu un comentari de línia única que expliqui què fa el següent codi.
  2. Declara una variable nom i assigna-li el teu nom.
  3. Declara una variable edat i assigna-li la teva edat.
  4. Imprimeix les variables nom i edat.
-- El teu codi aquí

Exercici 2: Operadors i Estructures de Control

  1. Declara dues variables a i b amb valors numèrics.
  2. Utilitza operadors aritmètics per sumar, restar, multiplicar i dividir aquestes variables.
  3. Escriu una estructura condicional que imprimeixi si a és major, menor o igual a b.
-- El teu codi aquí

Exercici 3: Funcions

  1. Defineix una funció multiplica que prengui dos arguments i retorni el seu producte.
  2. Crida la funció amb dos nombres i imprimeix el resultat.
-- El teu codi aquí

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.

© Copyright 2024. Tots els drets reservats