Enum ist die Abkürzung für enumeration (Aufzählung), was bedeutet, dass eine Reihe von Dingen, die Aufzähler genannt werden, benannt oder aufgelistet werden. Dies ist ein Typ in Verse, der für Dinge wie Wochentage oder Himmelsrichtungen verwendet werden kann.
Klicke auf das Bild, um es zu vergrößern.
Geschlossene und offene Enums
Verse verwendet die Attributbezeichner <open> und <closed> für Enums, um zu bestimmen, wie du die Definition des Enums ändern kannst, sobald deine Insel veröffentlicht ist.
Enums sind standardmäßig geschlossen. Bei geschlossenen Enums kannst du keine Enum-Werte hinzufügen oder neu anordnen oder eine geschlossene Enum in eine offene Enum ändern, sobald deine Insel veröffentlicht wurde.
Geschlossene Enums werden am besten für Fälle verwendet, in denen deine Werte erwartungsgemäß gleich bleiben, z. B. an den Wochentagen.
Mit offenen Enums kannst du:
Neue Enum-Werte hinzufügen.
Enum-Werte neu anordnen.
Eine offene Enum in eine geschlossene Enum umwandeln.
Offene Enums werden am besten eingesetzt, wenn du davon ausgehst, dass die Anzahl der Werte in deiner Enum in Zukunft zunehmen wird. Zum Beispiel eine Enum von Waffentypen.
Offene Enums können nicht in einer Fall-Anweisung ohne einen Standardfall verwendet werden. Geschlossene Enums können nur dann in Fall-Anweisungen ohne Standardfall verwendet werden, wenn alle Aufzählungswerte einen Fall haben.
Enum erstellen
| Action | Codebeispiel |
|---|---|
Geschlossene Enums erstellen: Enums sind standardmäßig geschlossen. Verwende das Schlüsselwort Du kannst die Enum explizit als geschlossen definieren, indem du den Bezeichner | Verse |
Offene Enums erstellen: Du musst eine offene Enum explizit definieren, indem du den Bezeichner | Verse |
Zugriff auf eine Aufzählung: Verwende | Verse |
Dauerhafter Typ
Eine Enum ist dauerhaft, wenn sie mit dem Bezeichner <persistable> definiert wurde. Das bedeutet, dass du sie in deinen Modul-weiten weak_map-Variablen verwenden kannst und ihre Werte über Spielsitzungen hinweg erhalten bleiben.
Für weitere Einzelheiten zur Persistenz in Verse, schau dir Using Persistable Data in Verse an.
Nicht dauerhafte Enums können nicht mit dauerhaften Daten verwendet werden.
Das folgende ist ein Beispiel für eine geschlossene, dauerhafte Enum der Wochentage, die gespeichert, aktualisiert und später für einen Spieler aufgerufen werden kann.
day := enum<persistable>:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
SundayWenn nicht anders angegeben, sind alle Enums standardmäßig geschlossen.
Veröffentlichte Enums
Sobald du deine Insel veröffentlicht hast, werden bestimmte Aspekte von geschlossenen und offenen Enums mit dem Bezeichner <persistable> fixiert.
Geschlossene Enums:
Kann nicht aktualisiert werden, um
<open>zu werden.Enum-Werte können nicht hinzugefügt, umbenennen, neu angeordnet oder entfernt werden.
Wenn nicht angegeben, kannst du den Bezeichner
<closed>hinzufügen.
Offene Enums:
Kann mit dem Bezeichner
<closed>zu einer geschlossenen Enum aktualisiert werden.Enum-Werte können hinzugefügt und neu angeordnet werden.
Enum-Werte können nicht umbenannt oder entfernt werden.
Kann nicht in Fall-Anweisungen ohne einen Standardfall verwendet werden.