डी प्रोग्रामिंग - एनम

एक गणना का उपयोग निरंतर मूल्यों के नामकरण के लिए किया जाता है। एक एनुमरेटेड प्रकार का उपयोग करके घोषित किया गया हैenum कीवर्ड।

enum सिंटेक्स

एक एनुम परिभाषा का सबसे सरल रूप निम्नलिखित है -

enum enum_name {  
   enumeration list 
}

कहाँ पे,

  • Enum_name गणना प्रकार नाम निर्दिष्ट करता है।

  • गणन सूची पहचान वाली अल्पविराम से अलग सूची है।

गणना सूची में प्रत्येक प्रतीक एक पूर्णांक मान के लिए खड़ा है, जो उस प्रतीक से बड़ा है जो इसे पसंद करता है। डिफ़ॉल्ट रूप से, पहले गणना चिह्न का मान 0. है। उदाहरण के लिए -

enum Days { sun, mon, tue, wed, thu, fri, sat };

उदाहरण

निम्न उदाहरण एनम चर के उपयोग को दर्शाता है -

import std.stdio;

enum Days { sun, mon, tue, wed, thu, fri, sat };

int main(string[] args) {
   Days day;

   day = Days.mon;
   writefln("Current Day: %d", day); 
   writefln("Friday : %d", Days.fri); 
   return 0;
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Current Day: 1 
Friday : 5

उपर्युक्त कार्यक्रम में, हम देख सकते हैं कि कैसे एक एन्यूमरेशन का उपयोग किया जा सकता है। प्रारंभ में, हम अपने उपयोगकर्ता परिभाषित गणना दिनों के नाम से एक चर बनाते हैं । फिर हम इसे डॉट ऑपरेटर का उपयोग करके सोम पर सेट करते हैं । हमें संग्रहीत मूल्य को मुद्रित करने के लिए राइटफ्लन विधि का उपयोग करना होगा। आपको प्रकार भी निर्दिष्ट करने की आवश्यकता है। यह प्रकार पूर्णांक का है, इसलिए हम मुद्रण के लिए% d का उपयोग करते हैं।

नामांकित गुण

उपरोक्त उदाहरण गणना के लिए एक दिन का उपयोग करता है और इसे नामांकित कहा जाता है। इन नामित नाम में निम्नलिखित गुण हैं -

  • Init - यह गणना में पहले मूल्य को इनिशियलाइज़ करता है।

  • min - यह गणना का सबसे छोटा मान लौटाता है।

  • max - यह गणना का सबसे बड़ा मूल्य लौटाता है।

  • sizeof - यह गणना के लिए भंडारण का आकार देता है।

गुणों का उपयोग करने के लिए पिछले उदाहरण को संशोधित करते हैं।

import std.stdio;

// Initialized sun with value 1 
enum Days { sun = 1, mon, tue, wed, thu, fri, sat };

int main(string[] args) { 
   writefln("Min : %d", Days.min); 
   writefln("Max : %d", Days.max);
   writefln("Size of: %d", Days.sizeof); 
   return 0; 
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Min : 1
Max : 7
Size of: 4

अनाम एनम

बिना नाम के एन्युमरेशन को एनम एनम कहा जाता है। के लिए एक उदाहरण हैanonymous enum नीचे दिया गया है।

import std.stdio; 
 
// Initialized sun with value 1 
enum { sun , mon, tue, wed, thu, fri, sat }; 
 
int main(string[] args) { 
   writefln("Sunday : %d", sun); 
   writefln("Monday : %d", mon); 
   return 0; 
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Sunday : 0
Monday : 1

अनाम एनम बहुत ही उसी तरह काम करते हैं जैसे नामांकित एनम, लेकिन उनके पास अधिकतम, न्यूनतम और आकार के गुण नहीं हैं।

बेस टाइप सिंटैक्स के साथ एनम

आधार प्रकार के साथ गणना के लिए वाक्यविन्यास नीचे दिखाया गया है।

enum :baseType {  
   enumeration list 
}

कुछ आधार प्रकारों में लंबा, इंट और स्ट्रिंग शामिल हैं। लंबे समय का उपयोग करने वाला एक उदाहरण नीचे दिखाया गया है।

import std.stdio;
  
enum : string { 
   A = "hello", 
   B = "world", 
} 
  
int main(string[] args) { 
   writefln("A : %s", A); 
   writefln("B : %s", B); 
   
   return 0; 
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

A : hello
B : world

अधिक सुविधाएं

डी में गणना कई प्रकारों के साथ गणना में कई मूल्यों के आरंभीकरण जैसी सुविधाएँ प्रदान करता है। एक उदाहरण नीचे दिया गया है।

import std.stdio;
  
enum { 
   A = 1.2f,  // A is 1.2f of type float 
   B,         // B is 2.2f of type float 
   int C = 3, // C is 3 of type int 
   D          // D is 4 of type int 
}
  
int main(string[] args) { 
   writefln("A : %f", A); 
   writefln("B : %f", B); 
   writefln("C : %d", C); 
   writefln("D : %d", D);  
   return 0; 
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

A : 1.200000
B : 2.200000
C : 3
D : 4