Paganini non ripete...
Provate ad immaginare di dover utilizzare più volte una sequenza di istruzioni all'interno dello stesso programma. A tal proposito potrebbe bastare un ciclo iterativo (while, for ecc...)... Ma se dovessi utilizzarle in momenti diversi? Per fortuna Lua, come ogni altro linguaggio che ci rispetti, ci mette a disposizione le funzioni. Una funzione, per il Lua, viene trattata come ogni altra variabile: ha un identificatore, può essere passata come parametro ad altre funzioni ecc... La sintassi per creare una funzione è:
Codice: Seleziona tuttofunction nome_funzione(nome_argomento1, nome_argomento2, ...)
-- Insersci qui il tuo codice
end
Una volta definita, una funzione può essere chiamata utilizzando la sintassi:
Codice: Seleziona tuttonome_funzione(argomento1, argomento2, ...)
Nel precedente esempio, l'argomento passato per primo potrà essere utilizzato dall'interno della funzione con nome "nome_argomento1", il secondo potrà essere richiamato col secondo nome e così via:
Codice: Seleziona tuttofunction stampa(argomento)
print(argomento)
end
stampa("ciao!")
Nell'esempio, al momento della chiamata della funzione, verrà inizializzata una variabile temporanea di nome "argomento" e di valore "ciao!" che esisterà per tutta la durata della funzione. E' possibile (e talvolta utile) creare funzioni che non accettano parametri.
Talvolta è necessario che la funzione "restituisca" un valore. Per questa necessità esiste il comando "return", che termina l'esecuzione della funzione stessa e restituisce al chiamante eventuali parametri:
Codice: Seleziona tuttofunction somma(a, b)
return a + b
end
Funzioni in grado di restituire valori possono essere utilizzate all'interno di espressioni:
Codice: Seleziona tuttoc = somma(2, 3)
print(c) -- Verrà visualizzato il numero 5!
"return" può essere utilizzato senza parametri per terminare prematuramente una funzione.
Esercizi:
-Creare una funzione che, dati in ingresso due parametri di nome "a" e "b", ne restituisca il prodotto.
-Utilizzando la funzione precedente ed un ciclo iterativo, creare un programma che stampi il prodotto di ogni numero da 0 a 99 per 2.







