The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
खैर, आपको स्कोप नियम के बारे में जानना होगा - {... }के साथ "स्कोप" के विचारों को समझना
स्थानीय चर
नमूना कोड से उत्पन्न आउटपुट का अवलोकन करें। मुख्य अंतर स्पष्ट होना चाहिए। ये सभी "स्थानीय" चर हैं, जो इसके {...} दायरे के अंतर्गत आते हैं।
int main( ) {
int X = 10, Y = 15;
{
int X = 20;
{
int X = 30, Y = 35;
brain.Screen.printAt(4,30, "तीसरा: %d, %d ", X, Y);
}
brain.Screen.printAt(4, 60, "दूसरा: %d, %d", X, Y);
}
brain.Screen.printAt(4, 90, "पहला: %d, %d", X, Y);
return 0;
}
आउटपुट:
तीसरा: 30, 35 दूसरा: 20, 15 पहला: 10, 15
उपरोक्त उदाहरण त्वरित एवं आसान स्पष्टीकरण के लिए उपयोग किया गया है। नेस्टेड स्कोप के भीतर समान वर्टिकल वैरिएबल का उपयोग न करें।
चरों को “main()” ब्लॉक के बाहर रखने के बारे में आपका क्या विचार है?
सार्वत्रिक चर
main() ब्लॉक के बाहर चर रखने से, लेकिन किसी अन्य फ़ंक्शन के भीतर नहीं, परियोजना में सभी फ़ंक्शन द्वारा चर को वैश्विक रूप से प्रयोग करने योग्य बना दिया जाएगा। इन्हें वैश्विक चर कहा जाता है।
int gValue = 90000; // यह अन्य सभी स्कोप के लिए वैश्विक है
int main() {
Brain.Screen.setFont(fontType::mono30);
int X = 10;
{
int X = 20, gValue = 8000;
{
int X = 30, gValue= 700;
Brain.Screen.printAt(4, 30, " तीसरा: %d ", gValue + X);
}
Brain.Screen.printAt(4, 60, " दूसरा: %d ", gValue + X);
}
Brain.Screen.printAt(4, 90, " पहला: %d ", gValue + X);
}
आउटपुट:
तीसरा: 730 दूसरा: 8020 पहला: 90010
सर्वोत्तम अभ्यास यह है कि वैश्विक और स्थानीय दोनों चरों के लिए समान पहचानकर्ता नामों का उपयोग न किया जाए।
ध्यान दें: कृपया ध्यान दें कि मैंने उल्लेख किया है: "प्रोजेक्ट", न कि "फ़ाइल"। एक परियोजना में एक से अधिक फ़ाइलें हो सकती हैं। हालाँकि, एक ही प्रोजेक्ट के भीतर, आपके पास एक से अधिक main() फ़ंक्शन नहीं हो सकते। यह इस लेख के दायरे से बाहर है। वैश्विक चरों के संबंध में “extern” का उपयोग करने जैसे कुछ अतिरिक्त नियम हैं। VEX लाइब्रेरीके भीतर एक ही प्रोजेक्ट के भीतर एकाधिक फ़ाइलों के संबंध में एक अन्य अनुभाग में इस पर आगे चर्चा की जाएगी।
“नेमस्पेस वेक्स” क्या है?
नामस्थान अनिवार्यतः “स्थानीय” बनाम “वैश्विक” चरों की चर्चा में नहीं आता, क्योंकि नामस्थान एक चर नहीं है। हालाँकि, “नेमस्पेस वेक्स” में अपना स्वयं का स्कोपहोता है। चूंकि यह टेम्पलेट कोड बेस का हिस्सा है जिसे आपको अपने सभी V5 प्रोग्राम में शामिल करना होगा, इसलिए इस आलेख में नामस्थान के लिए स्कोप नियम को संक्षेप में कवर किया जाना चाहिए।
प्रत्येक नामस्थान एक स्थान की तरह है जहाँ आप उस व्यक्तिगत "स्थान" से संबंधित चर, फ़ंक्शन का एक सेट बना सकते हैं। आप इस “स्पेस” के अंदर परिभाषित सभी उपलब्ध चर, फ़ंक्शन, क्लास आदि तक पहुंच प्राप्त करते हैं।
आप नामस्थान को ऑनलाइन https://api.vexcode.cloud/v5/html/पर देख सकते हैं। त्वरित खोज के लिए, आप “vex” पर राइट-क्लिक भी कर सकते हैं, फिर “परिभाषा पर जाएं” पर क्लिक करें। आपको नामस्थान “vex” से उपलब्ध जानकारी का खजाना मिलेगा।
आप इनमें से किसी तक इस प्रकार पहुँच सकते हैं: vex::
उदाहरण के लिए टेम्पलेट कोड पर वापस जाएँ:
नामस्थान vex का उपयोग करना; vex::brain मस्तिष्क;
इसके अतिरिक्त, इस "वेक्स" स्पेस के अंदर घोषित किए गए वेरिएबल, फंक्शन आदि सहित कोई भी नाम प्रोग्राम में किसी अन्य "स्पेस" के साथ संघर्ष नहीं करेगा।
उदाहरण के लिए, आप "myOwnNamespace" बनाने का निर्णय ले सकते हैं, तथा एक चर का शीर्षक "Brain" रख सकते हैं। ऐसा करना अनुशंसित नहीं है, लेकिन प्रोग्राम इसकी अनुमति देगा। ऐसा इसलिए है क्योंकि इसे "myOwnNamespace" के अंतर्गत परिभाषित किया गया है।