Array-Muster
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 8 von 78.
Ein Array-Muster wird wie ein Array-Literal geschrieben. Es passt auf ein Array derselben Größe, dessen Elemente der Reihe nach übereinstimmen. Jedes Element des Musters kann ein Literal, _ oder eine Bindung sein:
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 7Die Größe muss gleich sein: [var x, var y] entspricht nicht [1, 2, 3]. Setze .. als letztes Element ein, damit beliebig viele zusätzliche Elemente (auch null) erlaubt sind, und schreibe [] für ein leeres Array:
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving swordGuards funktionieren auch mit Array-Mustern: [var a, var b] when a == b: passt auf zwei gleiche Elemente.
Array-Muster stimmen nur mit dem Typ Array überein. Das von split() zurückgegebene PackedStringArray stimmt nie mit ihnen überein. Speichere das Ergebnis in einer als Array deklarierten Variable, wodurch es konvertiert wird:
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading northAufgabe
EinfachDas Programm liest einen Punkt im Format x,y ein und speichert ihn als zwei Ganzzahlen im Array point (bereits geschrieben). Verwende eine match-Anweisung mit Array-Mustern, um auszugeben, wo sich der Punkt befindet, und zwar anhand der ersten zutreffenden Regel:
- Beide sind
0:Origin xist0:On the y-axis at y=gefolgt vonyyist0:On the x-axis at x=gefolgt vonxxundysind gleich:On the diagonal atgefolgt vom Wert- Alles andere:
Point at (x, y)mit den beiden Werten
Für die Eingabe 0,5 lautet die Ausgabe:
On the y-axis at y=5Für die Eingabe 2,7 lautet sie:
Point at (2, 7)Probier es selbst
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# point mit Array-Mustern abgleichen
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler