Enum-Methoden und zugrunde liegende Ganzzahlen
Fügen Sie Verhalten hinzu und steuern Sie die Darstellung.
Enum-Methoden und zugrunde liegende Ganzzahlen ist eine kostenlose Zig Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Zig Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Enums können Verhalten haben
Ein Enum ist ein echter Typ und kann daher Methoden enthalten. Sie deklarieren Funktionen innerhalb des Enum-Rumpfs direkt neben den Wertnamen.
Eine Methode für ein Enum
Schreiben Sie eine Funktion innerhalb des Enums und verwenden Sie self als ersten Parameter. Sie funktioniert genauso wie eine Methode eines struct.
const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };Enum-Methoden aufrufen
Sie rufen eine Methode mit der Punktnotation für einen Wert auf. Der Wert wird zu self, sodass die Methode weiß, für welche Variante sie aufgerufen wurde.
const ok = c.isRed();Jedes Enum hat eine ganzzahlige Repräsentation
Intern wird jeder Enum-Wert einer Ganzzahl zugeordnet. Zig wählt einen kleinen Ganzzahltyp als Repräsentation, der für alle Ihre Werte ausreicht.
Die Standardnummerierung beginnt bei null
Standardmäßig ist der erste Wert 0, und jeder folgende Wert wird um eins erhöht. Daher sind red gleich 0, green gleich 1 und so weiter in dieser Reihenfolge.
const Color = enum { red, green, blue }; // 0, 1, 2Den Repräsentationstyp auswählen
Sie können die zugrunde liegende Ganzzahl in Klammern angeben, etwa enum(u8). Dadurch legen Sie die genaue Breite fest, was für Layout und Interoperabilität wichtig ist.
const Code = enum(u8) { a, b, c };Explizite Werte festlegen
Weisen Sie einem Wert mit = eine bestimmte Zahl zu. Das ist praktisch, wenn die Ganzzahlen mit einem Protokoll oder einem Hardware-Register übereinstimmen müssen.
const Status = enum(u8) { ok = 0, busy = 1, err = 255 };Enum in Ganzzahl umwandeln
Wandeln Sie einen Enum-Wert mit @intFromEnum in seine Zahl um. So erhalten Sie die zugrunde liegende Ganzzahl zum Senden oder Speichern.
const n = @intFromEnum(Status.err); // 255Ganzzahl in Enum umwandeln
Den umgekehrten Weg gehen Sie mit @enumFromInt: Damit wandeln Sie eine Zahl wieder in einen Enum-Wert des erwarteten Typs um.
const s: Status = @enumFromInt(1);Mit Vorsicht umwandeln
@enumFromInt geht davon aus, dass die Zahl eine gültige Variante ist. In sicheren Builds wird ein ungültiger Wert abgefangen; ansonsten müssen Sie ihn selbst validieren.
Methoden und Tags gemeinsam verwenden
Verbinden Sie beide Ideen: Wählen Sie einen Repräsentationstyp für das Layout, legen Sie Werte für ein Protokoll fest und fügen Sie Methoden hinzu, damit das Enum in sich geschlossen bleibt.
Kurze Kontrolle
Sie haben einen Status-Enum-Wert und benötigen dessen zugrunde liegende Zahl. Welches Builtin verwenden Sie?
Zusammenfassung
Sie haben Enums mit Methoden und self ausgestattet, eine ganzzahlige Repräsentation wie enum(u8) gewählt, explizite Werte festgelegt und mit @intFromEnum sowie @enumFromInt in beide Richtungen konvertiert. 🔢
Häufig gestellte Fragen
Ist die Lektion „Enum-Methoden und zugrunde liegende Ganzzahlen“ kostenlos?
Ja — der vollständige Text von „Enum-Methoden und zugrunde liegende Ganzzahlen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Zig Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Enum-Methoden und zugrunde liegende Ganzzahlen“?
Fügen Sie Verhalten hinzu und steuern Sie die Darstellung. Du übst Zig Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Zig Academy zu starten?
Keine Vorkenntnisse erforderlich. Zig Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Enum-Methoden und zugrunde liegende Ganzzahlen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Zig Academy-Lektion Code schreiben und ausführen?
Ja. Jede Zig Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Enums für eine feste Wertemenge
- Unions mit einem von mehreren Typen
- Markierte Unions und switch
- Enum-Methoden und zugrunde liegende Ganzzahlen