Forma idiomática de representar enumeraciones (enum) en Go
¡Hola a todos! Soy nuevo en Go, vengo de Python y Java, y no encuentro una forma adecuada de hacer una enumeración (enum). En otros lenguajes estoy acostumbrado a escribir algo como:
```python
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
```
En Go no hay un tipo `enum` incorporado. Intenté usar constantes con `const` e `iota`, pero siento que es incompleto. Por ejemplo, quiero crear un tipo para el estado de un pedido: `New`, `Processing`, `Shipped`, `Delivered`, `Cancelled`. Necesito que:
1. La variable pueda tomar solo uno de estos valores.
2. Haya una forma de verificar si el valor es válido.
3. Sería bueno tener un método `String()` para una salida bonita.
4. Y que sea idiomático, como se acostumbra en la comunidad de Go.
Por ahora hice esto:
```go
package main
import "fmt"
type OrderStatus int
const (
New OrderStatus = iota
Processing
Shipped
Delivered
Cancelled
)
func main() {
status := New
fmt.Println(s
No answers yet.
Inicia sesión para dejar una respuesta