La prima regola di un programmatore è commentare SEMPRE! Un programma ben commentato risulta più gradevole alla vista, meglio organizzato e più leggibile. Un programma non commentato rallenta il tempo di debugging, rendendo difficile localizzare un errore, rende difficile ad altra gente leggere e comprendere il funzionamento del programma stesso e soprattutto, a lungo termine, ne rende difficile la lettura anche da parte del programmatore stesso.
I commenti, in Lua, sono indicati dal doppio trattino "--". All'interno della stessa riga di un programma, tutto ciò che precede "--" è considerato codice, mentre tutto ciò che lo segue è considerato commento.
Codice: Seleziona tutto-- Sono un commento molto bello e utile.
Variabili ed Identificatori
Una variabile, in Lua, è un contenitore di dati contrassegnato da un "identificatore" specifico. L'identificatore o, semplicemente, nome della variabile, può essere composto da qualsiasi lettera (maiuscola o minuscola) o numero (purchè non sia il primo carattere). L'unico simbolo che può far parte del nome è "_", che viene solitamente utilizzato come spaziatore in identificatori molto lunghi es:
Codice: Seleziona tuttomeglio_utilizzare_identificatori_brevi_per_evitare_di_confondersi
In Lua esistono "parole riservate al linguaggio" che non possono essere utilizzate come identificatori. Queste parole sono:
and
local
true
false
nil
in
and
or
not
for
while
do
until
break
repeat
if
then
else
elseif
function
return
end
Inizializzazione e tipi di dato!
Ogni variabile, contrassegnata dal relativo identificatore, può essere "inizializzata" in qualsiasi momento all'interno del nostro programma. Prima di essere inizializzata la variabile è comunque esistente, ma il suo valore è nil (nullo). Per inizializzare una variabile, si utilizza l'operatore di assegnamento "=":
Codice: Seleziona tuttonome_variabile = valore
Ad una variabile può essere assegnato un valore di qualsiasi "tipo": numerico, booleano, stringa, nullo, table (set eterogeneo di valori) e funzione (eh si, in Lua si possono creare funzioni in run-time, e trattarle come fossero variabili normalissime!).
Per verificare il tipo del valore di una determinata variabile, durante l'esecuzione del nostro programma, si può utilizzare la funzione type(), che restituisce una stringa diversa in base al tipo di variabile che le passiamo:
Codice: Seleziona tuttovariabile_da_verificare = 20
print(type(variabile_da_verificare)) -- Stamperà la stringa "number"
Quando una variabile è stata inizializzata con un determinato tipo di dato, come nell'esempio precedente, nulla ci impedisce di reimpostarla assegnandole un valore di tipo diverso:
Codice: Seleziona tuttovariabile_stupida = 10
print(type(variabile_stupida)) -- "number"
variabile_stupida = "bau"
print type(variabile_stupida) -- "string"
number (Numero)
Il tipo "number" è rappresentato da qualsiasi numero intero o decimale. La funzione "type()", in presenza di una variabile di questa tipologia, restituisce la stringa "number".
Codice: Seleziona tuttovariabile_number = 10 -- Complimenti, hai inizializzato una variabile di tipo number!!
string (Stringa)
Una stringa è rappresentata da una qualsiasi sequenza di caratteri e simboli racchiusi tra apici ' o doppi apici ". La forza del linguaggio Lua è la mole di funzioni che mette a disposizione per elaborare stringhe e tables, e che vedremo tra qualche lezione. Nel caso delle stringhe, la funzione "type()" restituisce la stringa "string".
Codice: Seleziona tuttovariabile_cretina = 'sono una stringa!'
variabile_stupidella = "pure io, però uso i doppi apici e vengo usata più spesso!"
boolean (Booleani)
Le variabili booleane possono contenere solamente due valori: "true" (vero) e "false" (falso), un po' come gli switch in RPGMaker.
Codice: Seleziona tuttovariabile_booleana = false
La funzione "type()" ci restituirà la stringa "boolean".
nil (Nullo)
Una qualsiasi variabile, prima di essere inizializzata, è di valore "nil" (nullo). Se, durante il nostro programma, dovessimo aver bisogno di "resettare" una variabile, sarà sufficiente:
Codice: Seleziona tuttovariabile_da_resettare = nil
"type()" restituirà la stringa "nil"!
Conclusione ed esercizi
Nella prossima lezione tratteremo le tables (set di valori) e le funzioni (piccoli frammenti di programma che eseguono una routine predefinita e che possono essere chiamati in qualsiasi momento). Giusto per riscaldarvi un pochino, vi propongo un paio di esercizi in attesa della prossima lezione (che stavolta arriverà prima^^):
Esercizio 1: Inizializzate una variabile, assegnandole un valore numerico.
Inizializzate una seconda variabile, in modo che sia uguale alla prima. Ora, assegnate alla prima variabile un valore di tipo "string" e stampatela su schermo.
Esercizio 2: Inizializzate una variabile con qualsiasi valore e di qualsiasi tipo (eccetto table e function). Inizializzate una seconda variabile. Questa nuova variabile dev'essere di tipo "string" e deve contenere, come valore, la stringa che descrive il tipo della prima variabile.
Esercizio 3: Create, in un file di testo .lua, un micro programmino che:
inizializzi una variabile per ciascun tipo di dato spiegato durante la lezione, che stampi su schermo le variabili di tipo number e string, e che infine stampi a schermo i tipi di ciascuna variabile precedentemente inizializzata. Commentate poi il programma, testatelo utilizzando la console interattiva ed infine allegatelo al topic!
Nota: Nonostante non sia stato spiegato il modo di risolvere i primi due esercizi, dovreste arrivare alla soluzione tranquillamente usando l'intuito.











