Che cos'è un insieme?
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 31 di 78.
Un insieme è una raccolta di valori unici: ogni valore è presente una sola volta oppure non è presente affatto. La domanda che fai a un insieme è «questo valore è un membro?». I distintivi che un giocatore ha guadagnato, i livelli già visitati e i nomi utente già scelti sono insiemi.
Un array conserva ogni copia che aggiungi:
var pickups := ["sword", "shield", "sword"]
print(pickups.size()) # 3GDScript non ha un tipo Set. Invece, usi un dizionario: le sue chiavi sono univoche, quindi le chiavi sono gli elementi dell'insieme. I valori non vengono usati e, per convenzione, ogni valore è true:
var items := {"sword": true, "shield": true}
items["sword"] = true # è già un elemento: non cambia nulla
print(items.size()) # 2
print(items.keys()) # ["sword", "shield"]keys() restituisce i membri come array, nell’ordine in cui sono stati aggiunti per la prima volta. Un insieme vuoto è un dizionario vuoto, {}.
Un letterale di insieme elenca ogni elemento una sola volta. Scrivere la stessa chiave due volte all'interno di {} è un errore che arresta il programma prima che venga eseguito.
Per rendere esplicito il tipo del set, usa un dizionario tipizzato: var badges: Dictionary[String, bool] = {}
Sfida
FacileUn giocatore ha disputato quattro partite e ha ottenuto una medaglia in ciascuna. Alcune medaglie si ripetono. Il programma legge quattro righe di input, una per nome della medaglia.
Aggiungi ogni medaglia al set badges, poi stampa il numero di medaglie diverse e i membri del set come array. Per le medaglie Sniper, Medic, Sniper e Builder, l'output è:
Unique badges: 3
["Sniper", "Medic", "Builder"]Provalo tu
extends Node
func _ready():
var badges := {}
for i in range(4):
var badge := OS.read_string_from_stdin()
# Añade la insignia al conjunto
pass
# Imprime la cantidad de insignias y las insignias
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