यूफोरिया - लगातार
कॉन्स्टेंट भी वैरिएबल होते हैं जिन्हें एक प्रारंभिक मूल्य सौंपा जाता है जो प्रोग्राम के जीवन में कभी नहीं बदल सकते हैं। यूफोरिया निरंतर कीवर्ड का उपयोग करके स्थिरांक को परिभाषित करने की अनुमति देता है -
constant MAX = 100
constant Upper = MAX - 10, Lower = 5
constant name_list = {"Fred", "George", "Larry"}
किसी भी अभिव्यक्ति का परिणाम एक निरंतर को सौंपा जा सकता है, यहां तक कि पहले से परिभाषित कार्यों के लिए कॉल भी शामिल है, लेकिन असाइनमेंट किए जाने के बाद, स्थिर चर का मान "लॉक इन" है।
हो सकता है कि एक सबरूटीन के अंदर स्थिरांक घोषित नहीं किए गए हों। एक का दायराconstant इसमें स्कोप मोडिफायर नहीं है, घोषणा पर शुरू होता है और समाप्त होता है और फाइल के अंत में इसे घोषित किया जाता है।
उदाहरण
#!/home/euphoria-4.0b2/bin/eui
constant MAX = 100
constant Upper = MAX - 10, Lower = 5
printf(1, "Value of MAX %d\n", MAX )
printf(1, "Value of Upper %d\n", Upper )
printf(1, "Value of Lower %d\n", Lower )
MAX = MAX + 1
printf(1, "Value of MAX %d\n", MAX )
यह निम्न त्रुटि उत्पन्न करता है -
./test.ex:10
<0110>:: may not change the value of a constant
MAX = MAX + 1
^
Press Enter
यदि आप पिछले दो लाइनों को उदाहरण से हटाते हैं, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Value of MAX 100
Value of Upper 90
Value of Lower 5
enums
एक एन्यूमरेटेड वैल्यू एक विशेष प्रकार की स्थिरांक होती है, जहां पहला मान नंबर 1 पर चूक जाता है और उसके बाद प्रत्येक आइटम 1 से बढ़ा हुआ होता है। एनम केवल संख्यात्मक मान ले सकते हैं।
हो सकता है कि किसी सबरूटीन के अंदर एनम घोषित न हों। के दायरे एenum इसमें स्कोप मोडिफायर नहीं है, घोषणा पर शुरू होता है और समाप्त होता है और फाइल के अंत में इसे घोषित किया जाता है।
उदाहरण
#!/home/euphoria-4.0b2/bin/eui
enum ONE, TWO, THREE, FOUR
printf(1, "Value of ONE %d\n", ONE )
printf(1, "Value of TWO %d\n", TWO )
printf(1, "Value of THREE %d\n", THREE )
printf(1, "Value of FOUR %d\n", FOUR )
यह निम्नलिखित परिणाम देगा -
Value of ONE 1
Value of TWO 2
Value of THREE 3
Value of FOUR 4
आप किसी एक वस्तु के मूल्य को संख्यात्मक मान देकर बदल सकते हैं। इसके बाद के मान हमेशा पिछले मान प्लस एक होते हैं, जब तक कि उन्हें भी डिफ़ॉल्ट मान नहीं सौंपा जाता है।
#!/home/euphoria-4.0b2/bin/eui
enum ONE, TWO, THREE, ABC=10, XYZ
printf(1, "Value of ONE %d\n", ONE )
printf(1, "Value of TWO %d\n", TWO )
printf(1, "Value of THREE %d\n", THREE )
printf(1, "Value of ABC %d\n", ABC )
printf(1, "Value of XYZ %d\n", XYZ )
यह निम्न परिणाम उत्पन्न करता है -
Value of ONE 1
Value of TWO 2
Value of THREE 3
Value of ABC 10
Value of XYZ 11
अनुक्रम पूर्णांक सूचकांकों का उपयोग करते हैं, लेकिन एनम के साथ आप इस तरह कोड लिख सकते हैं -
enum X, Y
sequence point = { 0,0 }
point[X] = 3
point[Y] = 4