Manière idiomatique de représenter les énumérations (enum) en Go
Bonjour à tous ! Je suis nouveau en Go, je viens de Python et Java, et je n'arrive pas à trouver un moyen correct de faire une énumération (enum). Dans d'autres langages, j'ai l'habitude d'écrire quelque chose comme :
```python
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
```
En Go, il n'y a pas de type `enum` intégré. J'ai essayé d'utiliser des constantes avec `const` et `iota`, mais je sens que ce n'est pas complet. Par exemple, je veux créer un type pour le statut d'une commande : `New`, `Processing`, `Shipped`, `Delivered`, `Cancelled`. J'ai besoin que :
1. Une variable puisse prendre uniquement l'une de ces valeurs.
2. Il soit possible de vérifier si une valeur est valide.
3. Avoir une méthode `String()` pour un affichage agréable.
4. Et que ce soit idiomatique, comme c'est l'usage dans la communauté Go.
Pour l'instant, j'ai fait ceci :
```go
package main
import "fmt"
type OrderStatus int
const (
New OrderStatus = iota
Processing
Shipped
Delivered
Cancelled
)
func main() {
status := New
fmt.Println(s