Aggiungere e modificare coppie
Fa parte della sezione Fondamenti del percorso Lua di Coddy. Lezione 68 di 90.
Per aggiungere una nuova coppia chiave-valore o modificarne una esistente, basta usare l'operatore di assegnazione con la notazione a punti o la notazione tra parentesi quadre:
local player = {
["name"] = "Alex",
["level"] = 5
}
-- Aggiungi una nuova coppia chiave-valore
player.gold = 100
-- Modifica un valore esistente
player.level = 6La bellezza di questo approccio è che Lua non distingue tra aggiungere e modificare. Se la chiave "gold" non esiste nella tabella, viene creata con il valore 100. Se la chiave "level" esiste già, il suo valore viene aggiornato a 6.
Puoi usare sia la notazione con il punto sia quella con le parentesi quadre per queste operazioni:
-- Entrambi funzionano allo stesso modo
player.class = "Warrior"
player["weapon"] = "Sword"Sfida
FacileCrea un sistema di progressione del personaggio che dimostri sia l'aggiunta di nuovi attributi sia la modifica di quelli esistenti. Inizia creando una tabella denominata hero con le seguenti coppie chiave-valore iniziali: a ["name"] deve essere assegnata la stringa "Warrior", a ["level"] deve essere assegnato il numero 5 e a ["health"] deve essere assegnato il numero 120.
Dopo aver creato la tabella iniziale del personaggio, apporta le seguenti modifiche: per prima cosa, aggiungi una nuova coppia chiave-valore ["class"] con il valore "Paladin" usando la notazione con il punto. Poi, modifica il valore esistente di level impostandolo a 7 usando la notazione con le parentesi quadre. Infine, aggiungi un'altra nuova coppia chiave-valore ["mana"] con il valore 80 usando la notazione con le parentesi quadre.
Una volta completate tutte le modifiche, stampa la classe dell'eroe e il livello aggiornato per verificare i cambiamenti.
Provalo tu
-- Crea la tabella iniziale hero
local hero = {
-- TODO: Aggiungi qui le coppie chiave-valore iniziali
}
-- TODO: Aggiungi nuovi attributi e modifica quelli esistenti usando la notazione con il punto e con le parentesi quadre
-- Mostra class e il valore aggiornato di level di hero
print(hero.class)
print(hero.level)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 elementi3Operatori 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