Aufzählungszeichen in Go
-
Verwenden Sie das
iota
, umenums
in Go darzustellen -
Verwendung von
iota
zur automatischen Erhöhung von Zahlendeklarationen in Go -
Verwenden Sie das
iota
, um gemeinsames Verhalten in Go zu erstellen

Ein enum
(kurz für Enumerator) wird verwendet, um komplizierte Gruppierungen von Konstanten mit aussagekräftigen Namen, aber einfachen und eindeutigen Werten zu entwerfen.
In Go gibt es keinen Datentyp enum
. Wir verwenden den vordefinierten Bezeichner iota
, und enums
sind nicht streng typisiert.
Verwenden Sie das iota
, um enums
in Go darzustellen
iota
ist ein konstanter Bezeichner, der Deklarationen von Auto-Increment-Zahlen vereinfachen kann. Es bezeichnet eine nullbasierte ganzzahlige Konstante.
Das Schlüsselwort iota
repräsentiert die numerischen Konstanten 0, 1, 2,...
. Der im Quellcode vorkommende Begriff const
wird auf 0
zurückgesetzt und mit jeder const
-Angabe erhöht.
package main
import "fmt"
const (
a = iota
b = iota
c = iota
)
func main() {
fmt.Println(a, b, c)
}
Ausgabe:
0 1 2
Verwendung von iota
zur automatischen Erhöhung von Zahlendeklarationen in Go
Mit dieser Methode können Sie vermeiden, dass vor jeder Konstante ein fortlaufendes iota
steht.
package main
import "fmt"
const (
a = iota
b
c
)
func main() {
fmt.Println(a, b, c)
}
Ausgabe:
0 1 2
Verwenden Sie das iota
, um gemeinsames Verhalten in Go zu erstellen
Wir definieren eine einfache Enumeration
mit dem Namen Direction
, die vier mögliche Werte hat: "east"
, "west"
, "north"
und "south"
.
package main
import "fmt"
type Direction int
const (
East = iota + 1
West
North
South
)
// Giving the type a String method to create common behavior
func (d Direction) String() string {
return [...]string{"East", "West", "North", "South"}[d-1]
}
// Giving the type an EnumIndex function allows you to provide common behavior.
func (d Direction) EnumIndex() int {
return int(d)}
func main() {
var d Direction = West
fmt.Println(d)
fmt.Println(d.String())
fmt.Println(d.EnumIndex())
}
Ausgabe:
West
West
2