Idiomatischer Weg zur Darstellung von Aufzählungen (enum) in Go
Hallo zusammen! Ich bin neu in Go, komme von Python und Java und finde einfach keinen vernünftigen Weg, eine Aufzählung (enum) zu erstellen. In anderen Sprachen bin ich es gewohnt, so etwas zu schreiben:
```python
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
```
In Go gibt es keinen eingebauten Typ `enum`. Ich habe versucht, Konstanten mit `const` und `iota` zu verwenden, aber ich habe das Gefühl, dass dies nicht vollständig ist. Zum Beispiel möchte ich einen Typ für den Bestellstatus erstellen: `New`, `Processing`, `Shipped`, `Delivered`, `Cancelled`. Ich brauche:
1. Eine Variable soll nur einen dieser Werte annehmen können.
2. Es soll möglich sein zu überprüfen, ob ein Wert gültig ist.
3. Es wäre gut, eine Methode `String()` für eine schöne Ausgabe zu haben.
4. Und es soll idiomatisch sein, wie es in der Go-Community üblich ist.
Bisher habe ich das so gemacht:
```go
package main
import "fmt"
type OrderStatus int
const (
New OrderStatus = iota
Processing
Shipped
Delivered
Cancelled
)
func main() {
status := New
fmt.Println(s