Go में एनम (enum) को प्रस्तुत करने का इडियोमैटिक तरीका
सभी को नमस्कार! मैं Go में नौसिखिया हूँ, Python और Java से आ रहा हूँ, और मुझे एनम (enum) बनाने का कोई सामान्य तरीका नहीं मिल रहा है। अन्य भाषाओं में मैं कुछ इस तरह लिखने का आदी हूँ:
```python
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
```
Go में कोई बिल्ट-इन `enum` टाइप नहीं है। मैंने `const` और `iota` के साथ कॉन्स्टेंट का उपयोग करने की कोशिश की, लेकिन मुझे लगता है कि यह अधूरा है। उदाहरण के लिए, मैं ऑर्डर स्टेटस के लिए एक टाइप बनाना चाहता हूँ: `New`, `Processing`, `Shipped`, `Delivered`, `Cancelled`। मुझे चाहिए कि:
1. वेरिएबल केवल इनमें से एक मान ले सके।
2. यह जाँचने की क्षमता हो कि मान मान्य है या नहीं।
3. अच्छा होगा यदि सुंदर आउटपुट के लिए `String()` मेथड हो।
4. और यह इडियोमैटिक हो, जैसा कि Go समुदाय में प्रचलित है।
अब तक मैंने यह किया है:
```go
package main
import "fmt"
type OrderStatus int
const (
New OrderStatus = iota
Processing
Shipped
Delivered
Cancelled
)
func main() {
status := New
fmt.Println(s