मैं थोड़ा भ्रमित हूं कि Enums क्यों महत्वपूर्ण हैं। मान लें कि हमारे पास निम्न कोड है ...

enum playerState {walking, running, idle, jumping, dead};

playerState myPlayerState = idle;

if{energy == 0}
{
  myPlayerState = dead;
}

यह केवल एक स्ट्रिंग का उपयोग करने और गणना से पूरी तरह से बचने और आवश्यक होने पर नए उपयुक्त स्ट्रिंग मानों पर स्विच करने से अधिक कुशल कैसे है?

string playerState = "idle";

if{energy == 0}
{
  playerState = "dead";
}
2
4Matt 30 सितंबर 2016, 01:38

3 जवाब

सबसे बढ़िया उत्तर

अंतर यह है कि एनम मूल्यों के एक सख्त सेट को परिभाषित करता है जो एक चर धारण कर सकता है, और यदि आप इसे कुछ बुरा देने का प्रयास करते हैं तो आपको संकलन-समय त्रुटि देगा।

स्ट्रिंग्स के साथ, वे कोई भी मूल्य ले सकते हैं, और यदि आपके प्रोग्राम में कुछ परिभाषा के अनुसार स्ट्रिंग "खराब" है, तो यह इसके बजाय रनटाइम पर विफल हो जाएगी; या बिल्कुल नहीं, और अप्रत्याशित व्यवहार की ओर ले जाता है।

संकलन समय पर विफल होने वाली चीजें रनटाइम पर विफल होने से काफी बेहतर होती हैं; जब संभव।

@ जेफ भी सही है। एक एनम हमेशा कम जगह लेगा, इसलिए यदि आपके पास बहुत सारे चर तैर रहे हैं, तो एनम का उपयोग करने से फर्क पड़ सकता है।

3
Carcigenicate 30 सितंबर 2016, 01:56

2 कारण:

1) अधिकांश भाषाओं में एनम को एक पूर्णांक या समान का उपयोग करके लागू किया जाएगा, जो आम तौर पर एक तुलनीय स्ट्रिंग की तुलना में कम मेमोरी लेगा।

2) यह आपके कोड को देखने वाले अन्य डेवलपर्स के लिए एक गाइड है, जिससे उन्हें पता चलता है कि संभावित राज्यों की एक सीमित सूची है जो चर ले सकता है, और उन्हें बता रहा है कि वे प्राकृतिक भाषा में क्या हैं।

2
jeff carey 30 सितंबर 2016, 01:41
  1. Enum प्रकार अधिकांश भाषाओं में एक प्रतिबंधित पूर्णांक (एक पूर्णांक जो परिमित मानों का एक सेट ले सकता है) है जो संकलक के लिए जाना जाता है और संकलन समय पर जांचा जा सकता है
  2. चूंकि एक एनम के परिमित मूल्यों में मानव पठनीय नाम होते हैं, यह कोड को और अधिक पठनीय बनाता है
  3. स्ट्रिंग्स के विपरीत, Enums के भंडारण और हेरफेर के लिए कम कम्प्यूटेशनल प्रयास की आवश्यकता होती है
  4. अधिकांश कोड संपादकों में किसी प्रकार का IntelliSense होगा जो एक कोडर को संभावित मानों में से एक का चयन करने की अनुमति देगा, इस प्रकार कोड को और अधिक लिखने योग्य बना देगा
1
SorMun 30 सितंबर 2016, 01:50