Che cos'è un'enumerazione?
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 37 di 78.
Alcuni valori possono assumere solo una delle poche opzioni disponibili: un semaforo è rosso, giallo o verde e un giocatore è inattivo, corre o salta. Potresti memorizzare l’opzione come numero, con 0 per inattivo e 1 per correre, ma così ogni lettore deve ricordare cosa significa ciascun numero:
var state := 1
if state == 1:
print("Running")Un enum (abbreviazione di enumerazione) assegna un nome a ogni opzione. GDScript numera i nomi per te, a partire da 0:
enum State { IDLE, RUN, JUMP }Ora scrivi State.RUN invece di 1: il nome dell'enum, un punto e l'opzione. Il codice indica cosa significa:
var state := State.RUN
if state == State.RUN:
print("Running")Un'enumerazione viene dichiarata al livello superiore dello script, accanto a func _ready(): e non al suo interno. Una riga enum all'interno di una funzione è un errore che interrompe il programma prima che venga eseguito:
extends Node
enum State { IDLE, RUN, JUMP }
func _ready():
var state := State.JUMP
print(state) # 2Le opzioni sono costanti, quindi State.RUN = 5 è un errore. Un’opzione scritta in modo errato, come State.RUNN, viene segnalata prima che il programma venga eseguito, mentre un numero errato, come 3 al posto di 2, passa inosservato.
Sfida
FacileIl programma legge un numero intero da 0 a 3 che rappresenta il meteo. Assegna dei nomi ai numeri con un enum e stampa un consiglio.
- Al livello superiore dello script, dichiara un enum chiamato
Weathercon le opzioniSUNNY,CLOUDY,RAINYeSNOWY, in quest'ordine. - Confronta
weathercon le opzioni dell'enum (non con i numeri) e stampa una riga:
Weather.SUNNY:Wear sunglassesWeather.CLOUDY:Bring a jacketWeather.RAINY:Take an umbrellaWeather.SNOWY:Build a snowman
Per l'input 2, l'output è:
Take an umbrellaProvalo tu
extends Node
# Dichiara qui l'enum Weather
func _ready():
var weather := int(OS.read_string_from_stdin())
# Confronta weather con le opzioni dell'enum e stampa il consiglio
pass
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online