Les funcions són una part fonamental de qualsevol llenguatge de programació, i Lua no és una excepció. Les funcions permeten agrupar codi que es pot reutilitzar, millorant així la modularitat i la llegibilitat del codi. En aquesta secció, aprendrem com definir, cridar i utilitzar funcions en Lua.

Continguts

Definició de Funcions

En Lua, les funcions es defineixen utilitzant la paraula clau function seguida del nom de la funció, una llista de paràmetres entre parèntesis i el cos de la funció entre end.

function nom_de_la_funció(paràmetre1, paràmetre2)
    -- Cos de la funció
    print(paràmetre1, paràmetre2)
end

Exemple

function saluda(nom)
    print("Hola, " .. nom .. "!")
end

saluda("Anna")  -- Sortida: Hola, Anna!

Paràmetres i Arguments

Les funcions poden acceptar paràmetres, que són valors que es passen a la funció quan es crida. Aquests paràmetres es poden utilitzar dins de la funció com a variables locals.

Exemple

function suma(a, b)
    return a + b
end

resultat = suma(5, 3)  -- resultat és 8
print(resultat)  -- Sortida: 8

Valors de Retorn

Les funcions poden retornar valors utilitzant la paraula clau return. Això permet que la funció proporcioni un resultat que es pot utilitzar més endavant en el codi.

Exemple

function multiplica(a, b)
    return a * b
end

resultat = multiplica(4, 7)  -- resultat és 28
print(resultat)  -- Sortida: 28

Funcions Anònimes

Les funcions anònimes són funcions que no tenen un nom i es poden definir en qualsevol lloc on es pugui definir una expressió. Són especialment útils per a funcions de callback o funcions que es passen com a arguments a altres funcions.

Exemple

-- Funció anònima assignada a una variable
doble = function(x)
    return x * 2
end

print(doble(5))  -- Sortida: 10

-- Funció anònima com a argument
function aplica_funció(f, valor)
    return f(valor)
end

print(aplica_funció(function(x) return x + 3 end, 7))  -- Sortida: 10

Àmbit de les Variables

Les variables definides dins d'una funció són locals a aquesta funció i no es poden accedir des de fora. Això ajuda a evitar conflictes de noms i fa que el codi sigui més modular.

Exemple

function exemple()
    local x = 10  -- x és local a la funció exemple
    print(x)
end

exemple()  -- Sortida: 10
-- print(x)  -- Això donarà un error perquè x no està definida fora de la funció

Exercicis Pràctics

Exercici 1: Funció de Salutació

Crea una funció anomenada salutacio que accepti un nom com a paràmetre i imprimeixi una salutació personalitzada.

function salutacio(nom)
    -- El teu codi aquí
end

salutacio("Joan")  -- Sortida esperada: Hola, Joan!

Solució

function salutacio(nom)
    print("Hola, " .. nom .. "!")
end

salutacio("Joan")  -- Sortida: Hola, Joan!

Exercici 2: Funció de Factorial

Escriu una funció anomenada factorial que calculi el factorial d'un nombre donat.

function factorial(n)
    -- El teu codi aquí
end

print(factorial(5))  -- Sortida esperada: 120

Solució

function factorial(n)
    if n == 0 then
        return 1
    else
        return n * factorial(n - 1)
    end
end

print(factorial(5))  -- Sortida: 120

Exercici 3: Funció de Comprovació de Nombre Parell

Crea una funció anomenada és_parell que accepti un nombre i retorni true si el nombre és parell i false en cas contrari.

function és_parell(n)
    -- El teu codi aquí
end

print(és_parell(4))  -- Sortida esperada: true
print(és_parell(7))  -- Sortida esperada: false

Solució

function és_parell(n)
    return n % 2 == 0
end

print(és_parell(4))  -- Sortida: true
print(és_parell(7))  -- Sortida: false

Resum

En aquesta secció, hem après com definir i utilitzar funcions en Lua. Hem vist com passar paràmetres a les funcions, com retornar valors, i com utilitzar funcions anònimes. També hem explorat l'àmbit de les variables dins de les funcions. Finalment, hem practicat aquests conceptes amb alguns exercicis pràctics. Ara estàs preparat per utilitzar funcions per organitzar i modularitzar el teu codi Lua de manera efectiva.

© Copyright 2024. Tots els drets reservats