Was ist ein Enum?
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 37 von 78.
Manche Werte können nur eine von wenigen Optionen sein: Eine Ampel ist rot, gelb oder grün, und ein Spieler ist untätig, läuft oder springt. Du könntest die Option als Zahl speichern, mit 0 für untätig und 1 für laufend, aber dann muss sich jeder Leser merken, was die einzelnen Zahlen bedeuten:
var state := 1
if state == 1:
print("Running")Ein Enum (kurz für Enumeration) gibt jeder Option einen Namen. GDScript nummeriert die Namen für dich, beginnend bei 0:
enum State { IDLE, RUN, JUMP }Jetzt schreibst du State.RUN statt 1: den Namen der Enumeration, einen Punkt und die Option. Der Code sagt, was es bedeutet:
var state := State.RUN
if state == State.RUN:
print("Running")Eine Aufzählung wird auf der obersten Ebene des Skripts deklariert, neben func _ready(): und nicht innerhalb davon. Eine enum-Zeile innerhalb einer Funktion ist ein Fehler, der das Programm anhält, bevor es ausgeführt wird:
extends Node
enum State { IDLE, RUN, JUMP }
func _ready():
var state := State.JUMP
print(state) # 2Die Optionen sind Konstanten, daher ist State.RUN = 5 ein Fehler. Eine falsch geschriebene Option wie State.RUNN wird gemeldet, bevor das Programm ausgeführt wird, während eine falsche Zahl wie 3 anstelle von 2 unbemerkt bleibt.
Aufgabe
EinfachDas Programm liest eine ganze Zahl von 0 bis 3, die für das Wetter steht. Gib den Zahlen mit einem Enum Namen und gib einen Ratschlag aus.
- Definiere auf der obersten Ebene des Skripts ein Enum namens
Weathermit den OptionenSUNNY,CLOUDY,RAINYundSNOWY, in dieser Reihenfolge. - Vergleiche
weathermit den Enum-Optionen (nicht mit den Zahlen) und gib eine Zeile aus:
Weather.SUNNY:Wear sunglassesWeather.CLOUDY:Bring a jacketWeather.RAINY:Take an umbrellaWeather.SNOWY:Build a snowman
Für die Eingabe 2 lautet die Ausgabe:
Take an umbrellaProbier es selbst
extends Node
# Deklariere hier das Weather-Enum
func _ready():
var weather := int(OS.read_string_from_stdin())
# Vergleiche weather mit den Enum-Optionen und gib den Ratschlag aus
pass
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