Pattern per array
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 8 di 78.
Un pattern array si scrive come un letterale array. Corrisponde a un array della stessa dimensione, i cui elementi corrispondono uno a uno. Ogni elemento del pattern può essere un letterale, _ o un'associazione:
var point := [0, 7]
match point:
[0, 0]:
print("Origin")
[0, var y]:
print("On the y-axis at ", y)
[var x, var y]:
print("Point ", x, ", ", y)On the y-axis at 7La dimensione deve essere la stessa: [var x, var y] non corrisponde a [1, 2, 3]. Metti .. come ultimo elemento per consentire un qualsiasi numero di elementi aggiuntivi (zero incluso) e scrivi [] per un array vuoto:
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving swordLe condizioni di guardia funzionano anche con i pattern di array: [var a, var b] when a == b: corrisponde a due elementi uguali.
I pattern degli array corrispondono solo al tipo Array. Il PackedStringArray restituito da split() non corrisponde mai. Memorizza il risultato in una variabile dichiarata come Array, che lo converte:
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading northSfida
FacileIl programma legge un punto scritto come x,y e lo memorizza nell’array point come due numeri interi (già scritto). Usa un’istruzione match con pattern di array per stampare dove si trova il punto, usando la prima regola applicabile:
- Entrambi sono
0:Origin xè0:On the y-axis at y=seguito dayyè0:On the x-axis at x=seguito daxxeysono uguali:On the diagonal atseguito dal valore- Qualsiasi altro caso:
Point at (x, y)con i due valori
Per l’input 0,5, l’output è:
On the y-axis at y=5Per l’input 2,7, è:
Point at (2, 7)Provalo tu
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# Confronta point con i pattern degli array
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