Perché usare variabili locali?
Fa parte della sezione Fondamenti del percorso Lua di Coddy. Lezione 85 di 90.
Prevenire i conflitti tra nomi: Il vantaggio più importante delle variabili locali è che ti impediscono di sovrascrivere accidentalmente altre variabili con lo stesso nome. Quando usi variabili globali in tutto il programma, è facile riutilizzare per sbaglio un nome di variabile e modificare un valore che non intendevi cambiare.
score = 100 -- il punteggio del giocatore
function countEnemies()
score = 0 -- pensato come contatore solo per questa funzione
for i = 1, 3 do
score = score + 1
end
return score
end
countEnemies()
print(score) -- 3: il punteggio del giocatore è stato sovrascritto!La funzione avrebbe dovuto usare il proprio contatore, ma poiché score è globale, ha modificato il punteggio del giocatore. Aggiungendo local, la funzione ottiene una variabile separata che esiste solo al suo interno:
function countEnemies()
local score = 0 -- una nuova variabile, solo all'interno di questa funzione
for i = 1, 3 do
score = score + 1
end
return score
end
countEnemies()
print(score) -- 100: la variabile globale score rimane invariataCon le variabili locali, ogni funzione e blocco ha le proprie variabili separate, così il codice in un punto non può modificare accidentalmente i valori usati altrove.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori 2: relazionali e logici
Operatori di uguaglianzaOperatori relazionaliL'operatore 'and'L'operatore 'or'L'operatore 'not'Valutazione short-circuitValori truthy e falsyRiepilogo: logica semplice7Logica condizionale di base
L'istruzione if-thenL'istruzione if-then-elseL'istruzione elseifRiepilogo - Il forziere del tesoro2Variabili e tipi di dati
Che cos'è una variabile?NumeriStringheValori booleaniIl valore 'nil'La funzione type()Convenzioni di denominazioneRiepilogo - Profilo del personaggio5Output di base
Stampare valori letteraliStampare variabiliStampare più valoriCombinare stringhe e variabiliLa funzione tostring()InputCastRipasso - Rapporto di statoRipasso - Fino a 1208Basi della manipolazione delle stringhe
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Riepilogo - Formatta il nome utente11Tabelle 2: in stile dizionario
Coppie chiave-valoreCreare tabelle in stile dizionarioAccesso - notazione con parentesi quadreAccesso con la notazione a puntoAggiungere e modificare coppieRimuovere coppie con nilRiepilogo - proprietà degli elementi14Ambito delle variabili
Variabili globaliVariabili localiPerché usare variabili locali?Ambito e blocchiRiepilogo - rompicapo sull'ambito3Operatori 1: aritmetica e concatenazione
Operatori aritmeticiOperatore moduloOperatore di elevamento a potenzaConcatenazione di stringhePrecedenza degli operatoriRipasso: calcoli semplici6Progetto: visualizzazione delle statistiche del personaggio
Messaggio di benvenutoDichiara le statistiche del personaggio9Funzioni: nozioni di base
Dichiarare una funzioneChiamare una funzioneFunzioni con parametriFunzioni con più parametriL'istruzione 'return'Ripasso - Calcolatore di areaEsercitati da solo: Compilatore Lua online