Avatar ·

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