Match-Guards
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 7 von 78.
Eine Schutzbedingung fügt einem Muster eine Bedingung hinzu. Schreibe when und eine Bedingung nach dem Muster: Das Muster stimmt nur dann überein, wenn der Wert zum Muster passt und die Bedingung true ist. Schutzbedingungen gibt es seit Godot 4.4.
var hp := 15
match hp:
0:
print("Defeated")
var h when h < 20:
print("Low health: ", h)
_:
print("Healthy")Low health: 15GDScript kennt keine Bereichsmuster wie 1..10. Ein Bindungsmuster mit einer Schutzbedingung erfüllt diesen Zweck: var h when h < 20: passt auf jeden Wert unter 20 und weist ihm den Namen h zu.
Wenn eine Wächterbedingung false ist, fährt match mit dem nächsten Muster fort. Die Muster werden von oben nach unten geprüft, daher entscheidet die Reihenfolge, welcher Block ausgeführt wird:
var temp := 32
match temp:
var t when t <= 0:
print("Freezing")
var t when t < 15:
print("Cold")
var t when t < 30:
print("Warm")
_:
print("Hot")HotDas zweite Muster benötigt t > 0 nicht: Eine Temperatur von 0 oder darunter hat bereits auf das erste Muster gepasst. Eine Schutzbedingung kann jede beliebige Bedingung verwenden, mit anderen Variablen und and oder or, und sie passt zu jedem Muster: 5 when hard_mode: passt nur dann auf 5, wenn hard_mode true ist.
Aufgabe
EinfachDas Programm liest ein Alter als Ganzzahl in age ein. Verwende eine match-Anweisung mit Wächterbedingungen, um die Altersgruppe auszugeben:
0bis12:Child13bis19:Teenager20bis64:Adult65bis120:Senior- Jede andere Zahl:
Invalid age
Jeder Bereich schließt beide Endpunkte ein. Für die Eingabe 15 lautet die Ausgabe:
TeenagerProbier es selbst
extends Node
func _ready():
var age := int(OS.read_string_from_stdin())
# Gib die Altersgruppe mit match und Guards aus
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