Go में enums (गणना) को सही और मुहावरेदार तरीके से कैसे लागू करें?
सभी को नमस्कार! मैं Go में नया हूँ, Java और Python से आया हूँ, और एक सरल प्रश्न का स्पष्ट उत्तर नहीं ढूंढ पा रहा हूँ: Go में enums (गणना) कैसे करें?
Java में मैं इस तरह लिखता था:
```java
public enum Season {
WINTER, SPRING, SUMMER, AUTUMN
}
```
Python में मैं मानक लाइब्रेरी से `Enum` का उपयोग करता हूँ। Go में मैं केवल `const` और `iota` देखता हूँ, लेकिन यह अतार्किक है—बस संख्याएँ, इसकी कोई गारंटी नहीं है कि कोई मेरे "enum" के बजाय 999 संख्या नहीं भेजेगा।
मुझे ऑर्डर की स्थिति लागू करनी है:
- New
- Processing
- Shipped
- Delivered
- Cancelled
मैं चाहता हूँ कि:
1. सख्त टाइपिंग हो (कोई मनमानी संख्या नहीं भेजी जा सके)।
2. लॉग और उपयोगकर्ता के लिए स्थिति को स्ट्रिंग के रूप में आउटपुट करना सुविधाजनक हो।
3. यह जाँचने की क्षमता हो कि मान स्वीकार्य सेट में है या नहीं।
Go में यह सही तरीके से कैसे किया जाता है? मैंने `iota` के बारे में सुना है, लेकिन समझ नहीं पाया कि विधियों के साथ पूर्ण enum कैसे बनाया जाए। और यह भी—Go में अन्य भाषाओं की तरह मूल enum क्यों नहीं है? यह बग है या फीचर?
कृपया उदाहरण दें।