यूफोरिया - चर
वैरिएबल मूल्यों को संग्रहीत करने के लिए आरक्षित मेमोरी स्थानों के अलावा कुछ भी नहीं हैं। इसका मतलब है जब आप एक वैरिएबल बनाते हैं, तो आप मेमोरी में कुछ जगह आरक्षित करते हैं।
एक चर के डेटा प्रकार के आधार पर, दुभाषिया मेमोरी आवंटित करता है और यह तय करता है कि आरक्षित मेमोरी में क्या संग्रहीत किया जा सकता है। इसलिए, विभिन्न डेटा प्रकारों को चर में निर्दिष्ट करके, आप इन चर में पूर्णांक, दशमलव या वर्ण संग्रहीत कर सकते हैं। यूफोरिया डेटा प्रकारों को विभिन्न अध्याय में समझाया गया है।
इन मेमोरी स्थानों को चर कहा जाता है क्योंकि उनके मूल्य को उनके जीवन काल के दौरान बदला जा सकता है।
परिवर्तनीय घोषणा
यूफोरिया चर को स्मृति स्थान आरक्षित करने के लिए स्पष्ट रूप से घोषित किया जाना चाहिए। इस प्रकार किसी वैरिएबल का मूल्य घोषित करने से पहले एक वैरिएबल की घोषणा अनिवार्य है।
परिवर्तनीय घोषणाओं में एक प्रकार का नाम होता है जिसके बाद चरों की सूची घोषित की जाती है। उदाहरण के लिए -
integer x, y, z
sequence a, b, x
जब आप एक चर घोषित करते हैं, तो आप चर का नाम देते हैं और आप परिभाषित करते हैं कि आपके प्रोग्राम के निष्पादन के दौरान वैधानिक रूप से किस प्रकार के मान निर्दिष्ट किए जा सकते हैं।
एक चर घोषित करने का सरल कार्य इसके लिए कोई मूल्य प्रदान नहीं करता है। यदि आप इसे किसी भी मूल्य को निर्दिष्ट करने से पहले पढ़ने का प्रयास करते हैं, तो यूफोरिया एक रन-टाइम त्रुटि जारी करेगा क्योंकि "चर xyz को कभी भी एक मान नहीं सौंपा गया है" ।
मान देना
समान चिह्न (=) का उपयोग चर को मान निर्दिष्ट करने के लिए किया जाता है। चर निम्नलिखित तरीके से सौंपा जा सकता है -
Variable_Name = Variable_Value
उदाहरण के लिए -
#!/home/euphoria/bin/eui
-- Here is the declaration of the variables.
integer counter
integer miles
sequence name
counter = 100 -- An integer assignment
miles = 1000.0 -- A floating point
name = "John" -- A string ( sequence )
printf(1, "Value of counter %d\n", counter )
printf(1, "Value of miles %f\n", miles )
printf(1, "Value of name %s\n", {name} )
यहां 100, 1000.0 और "जॉन" क्रमशः काउंटर , मील और नाम चर के लिए निर्दिष्ट मान हैं। यह कार्यक्रम निम्नलिखित परिणाम उत्पन्न करता है -
Value of counter 100
Value of miles 1000.000000
Value of name John
किसी वैरिएबल को इनिशियलाइज़ करने की भूल करने से बचने के लिए, और यह भी क्योंकि यह कोड को पढ़ने के लिए क्लियर कर सकता है, आप घोषणा और असाइनमेंट को जोड़ सकते हैं -
integer n = 5
यह निम्नलिखित के बराबर है -
integer n
n = 5
पहचानकर्ता स्कोप
एक पहचानकर्ता का दायरा इस बात का विवरण है कि कौन सा कोड इसे एक्सेस कर सकता है। एक पहचानकर्ता के समान दायरे में कोड उस पहचानकर्ता तक पहुंच सकता है और कोड उसी दायरे में नहीं पहुंच सकता है जब पहचानकर्ता उस तक नहीं पहुंच सकता है।
एक चर का दायरा इस बात पर निर्भर करता है कि कहां और कैसे घोषित किया गया है।
यदि यह एक के भीतर घोषित किया जाता है for, while, loop या switch, इसका दायरा घोषणा पर शुरू होता है और संबंधित पर समाप्त होता है end बयान।
में एक if बयान, गुंजाइश घोषणा पर शुरू होता है और या तो अगले पर समाप्त होता है else, elsif या end if बयान।
यदि किसी रूटीन के भीतर एक वेरिएबल घोषित किया जाता है, तो वेरिएबल का दायरा डिक्लेरेशन पर शुरू होता है और रूटीन के अंतिम स्टेटमेंट पर समाप्त होता है। यह एक निजी चर के रूप में जाना जाता है।
यदि किसी रूटीन के बाहर एक वैरिएबल घोषित किया जाता है, तो इसका दायरा डिक्लेरेशन पर शुरू होता है और समाप्त होता है और फाइल के अंत में इसे घोषित किया जाता है। इसे एक मॉड्यूल वैरिएबल के रूप में जाना जाता है।
एक का दायरा constant इसमें स्कोप मोडिफायर नहीं है, घोषणा पर शुरू होता है और समाप्त होता है और फाइल के अंत में इसे घोषित किया जाता है।
एक का दायरा enum इसमें स्कोप मोडिफायर नहीं है, घोषणा पर शुरू होता है और समाप्त होता है और फाइल के अंत में इसे घोषित किया जाता है।
सभी का दायरा procedures, functions तथा types, जिसमें स्कोप मोडिफायर नहीं है, स्रोत फ़ाइल की शुरुआत में शुरू होता है और स्रोत फ़ाइल के अंत में समाप्त होता है जिसमें वे घोषित किए जाते हैं।
लगातार, एनम, मॉड्यूल चर, प्रक्रियाएं, कार्य और प्रकार, जिनमें गुंजाइश संशोधक नहीं है, के रूप में संदर्भित किया जाता है locals। हालाँकि, इन पहचानकर्ताओं के पास अपनी घोषणा से पहले एक स्कोप मोडिफायर हो सकता है, जिसके कारण उनका दायरा उनके द्वारा घोषित की गई फ़ाइल से आगे बढ़ सकता है।
यदि कीवर्ड globalघोषणा से पहले, इन पहचानकर्ताओं का दायरा पूरे आवेदन तक फैला हुआ है। उन्हें एप्लिकेशन फ़ाइलों में कहीं भी कोड द्वारा एक्सेस किया जा सकता है।
यदि कीवर्ड publicपछाड़ घोषणा, गुंजाइश है कि स्पष्ट रूप से, फ़ाइल जिसमें पहचानकर्ता घोषित किया जाता है शामिल हैं या जो किसी फ़ाइल शामिल है कि बदले में किसी भी फाइल को किसी भी फाइल तक फैली सार्वजनिक युक्त फ़ाइल शामिल सार्वजनिक घोषणा।
यदि कीवर्ड export घोषणा से पहले, गुंजाइश केवल किसी भी फ़ाइल तक फैली होती है जिसमें सीधे उस फ़ाइल को शामिल किया जाता है जिसमें पहचानकर्ता घोषित होता है।
जब आप includeएक अन्य फ़ाइल में एक यूफोरिया फ़ाइल, केवल एक गुंजाइश संशोधक का उपयोग करके घोषित किए गए पहचानकर्ता शामिल करने वाली फ़ाइल के लिए सुलभ हैं । शामिल फ़ाइल में अन्य घोषणाएँ शामिल फ़ाइल करने के लिए अदृश्य हैं ।