Valori dell'enumerazione
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 39 di 78.
Ogni opzione di un enum è un int, quindi puoi confrontare le opzioni e fare calcoli con esse:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
print(Day.FRIDAY) # 4
print(Day.SATURDAY > Day.FRIDAY) # true
print(Day.FRIDAY + 1) # 5L'enumerazione stessa funziona come un dizionario che associa nomi a valori. keys() restituisce i nomi in ordine, values() i valori e size() il numero di opzioni:
print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7Per stampare il nome di un valore, indicizzalo con keys(). Funziona quando le opzioni hanno i valori predefiniti 0, 1, 2... Per un enum con valori scelti, usa find_key(), che restituisce il nome di un valore:
var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAYCon enum Coin { COPPER = 1, SILVER = 10 } al livello superiore, Coin.keys()[10] è fuori intervallo, mentre find_key() funziona:
print(Coin.find_key(10)) # SILVERPer andare nell'altra direzione, da un nome memorizzato come testo al suo valore, usa le parentesi quadre. Verifica prima il nome con has(): un nome che non è nell'enum è un errore.
var text := "FRIDAY"
if Day.has(text):
print(Day[text]) # 4for day_name in Day: scorre i nomi, come un ciclo su un dizionario.
Sfida
FacileLo script dichiara l'enum Day, da MONDAY a SUNDAY. Il programma legge due righe: il nome di un giorno in lettere maiuscole e un numero di giorni (un numero intero, 0 o superiore).
Stampa due righe:
- Il nome,
has the valuee il valore di quel giorno nell'enum In, il numero,days:e il nome del giorno che cade quel numero di giorni dopo
Dopo SUNDAY, la settimana ricomincia da MONDAY. Per gli input FRIDAY e 3, l'output è:
FRIDAY has the value 4
In 3 days: MONDAYProvalo tu
extends Node
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
var day_name := OS.read_string_from_stdin()
var days := int(OS.read_string_from_stdin())
# Stampa il valore del giorno e quello del giorno dopo quel numero di giorni
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