Golang Enum

Golang Enum
Ein Auflauf, kurz für Enumerator, sind spezielle Daten, mit denen ein Satz benannter konstanter Variablen deklariert wird. Verwenden von Enums können wir eine Reihe komplexer Konstanten mit beschreibenden Variablennamen und eindeutigen Werten erstellen.

Lassen Sie uns diskutieren, wie man mit Aufzählern in Go arbeitet.

Golang Enum

Die Syntax für die Deklaration eines Enum in Go ist wie gezeigt:

Geben Sie enum_namedata_type ein
const (
variableenum_name = ioTa
variable2
Variable3

)

Angenommen, wir wollen die Tage einer Woche darstellen. Die grundlegendste Methode besteht darin, eine Zuordnung der gewünschten Werte zu erstellen.

Ein Beispiel:

const (
Sonntag int = 1
Montag = 2
Dienstag = 3
Mittwoch = 4
Donnerstag = 5
Freitag = 6
Samstag = 7
)

Wir können auch die Tage als String -Mapping wie gezeigt darstellen:

const (
Sunday String = "Sonne"
Montag = "mon"
Dienstag = "Di"
Mittwoch = "Mi"
Donnerstag = "Thur"
Freitag = "Fr."
Samstag = "Sa" "
)

Jetzt können Sie fragen? Was ist falsch daran, die Wochentage zu repräsentieren, wie oben gezeigt? Erstens erscheint es sich wiederholend und sehr anfällig für Konflikte.

Angenommen, wir haben zwei Aufzüge als:

// eins
const (
Sonntag int = 1
Montag = 2
Dienstag = 3
Mittwoch = 4
Donnerstag = 5
Freitag = 6
Samstag = 7
)
// zwei
const (
Treiber int = 1
Koch = 2
)

Wenn wir auf Vergleich suchen, als:

fmt.Println (Sonntag == Fahrer)

Der Code gibt true zurück. Dies sollte nicht der Fall sein.

Wir können dies beheben, indem wir einen Aufzündung erstellen, der Tage der Woche beschreibt. Ein Beispielcode ist wie gezeigt:

Paket Main
funcmain ()
Typ DaysofWeek INT64
const (
Sonntagstage der Woche = 1
Montag = 2
Dienstag = 3
Mittwoch = 4
Donnerstag = 5
Freitag = 6
Samstag = 7
)

Hier definieren wir einen neuen Typ namens Daysofweek () mit einer Ganzzahl als Basistyp. Dies hilft, die const -Werte als ihren Typ zu definieren.

Um die Einzigartigkeit in den Werten zu gewährleisten, können wir das IoTA -Schlüsselwort verwenden. Das Schlüsselwort erstellt einen aufeinanderfolgenden Satz eindeutiger konstanter Werte:

Paket Main
importieren "fmt"
funcmain ()
Typ DaysofWeek INT64
const (
Sonntagstage der Woche = iota
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
)

Der vorherige Code ersetzt die Werte durch eine Reihe von aufeinanderfolgenden Ganzzahlwerten.

Sobald wir eine Enum deklarieren, können wir wie gezeigt eine Variable dieser Art erstellen:

Paket Main
importieren "fmt"
funcmain ()
Typedaysofweekint64
const (
Sonntagstage der Woche = iota
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
)
var d taysof weeek
D = Donnerstag
if (d == Donnerstag)
fmt.Println ("Tag der Woche:", D)

Im vorherigen Code deklarieren wir eine Variable D mit Typ DaysofWeek (). Wir weisen dann den Wert dem Typ zu. Als nächstes können wir prüfen, ob der Wert gleich einem der Aufzüße ist.

Die resultierende Ausgabe lautet wie:

Tag der Woche: 4

Enum -String -Methode

Angenommen, wir möchten eine beschreibendere Nachricht hinzufügen. Wir können eine Methode für den Tagen der Woche hinzufügen, wie gezeigt:

Paket Main
importieren "fmt"
Typedaysofweekint64
const (
Sonntagstage der Woche = iota
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
)
func (d DaysofWeek) String () String
Return [] String "Sunday", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag" [D]

funcmain ()
Var Day Days ofweek = Donnerstag
Tag wechseln
Fall Sonntag:
fmt.Println ("Sonntag")
Fall Montag:
fmt.Println ("Montag")
Fall Dienstag:
fmt.Println ("Dienstag")
Fall Mittwoch:
fmt.Println ("Mittwoch")
Fall Donnerstag:
fmt.Println ("Donnerstag")
Fall Freitag:
fmt.Println ("Freitag")
Fall Samstag:
fmt.Println ("Samstag")
Standard:
fmt.Println ("ungültiger Tag")

Die Verwendung der String () -Methode ist sehr nützlich, da sie die Druckbarkeit einer Zeichenfolge implementieren können, anstatt einen Enum -Typ zu erstellen.

Enum überspringen Wert

Wenn Sie in der Liste der Konstanten einen Wert überspringen möchten, können Sie wie gezeigt eine leere Kennung verwenden:

Typ DaysofWeek INT64
const (
SundaydaySofweek = iota
Montag
_
Mittwoch
Donnerstag
Freitag
Samstag
)

Abschluss

Dieser Leitfaden deckt die Implementierung und Arbeiten mit Aufzählern in der Go -Programmiersprache ab. Zusätzlich wurden die Enum -String -Methode und die Enum -Skip -Werte mit Beispielen diskutiert. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Tutorials finden Sie in anderen Linux -Hinweisartikeln.