حسنًا ، أنت بحاجة إلى معرفة قاعدة النطاق - فهم أفكار "النطاق" باستخدام {... }
المتغيرات المحلية
لاحظ الإخراج الناتج من نموذج التعليمات البرمجية. يجب أن يكون واضحا بشأن الاختلاف الرئيسي. هذه جميع المتغيرات "المحلية" ، ضمن نطاقها {...} .
int main () { int X = 10، Y = 15؛ { int X = 20؛ { int X = 30، Y = 35؛ brain.Screen.printAt (4،30، "3rd one: %d، %d "، X ، Y) ؛ } brain.Screen.printAt (4، 60، "الثانية: %d، %d"، X، Y)؛ } brain.Screen.printAt (4، 90، "1st one: %d، %d"، X، Y)؛ إرجاع 0 ؛ }
انتاج:
المرحلة الثالثة: 30 ، 35 الثانية: 20 ، 15 الأولى: 10 ، 15
يستخدم المثال أعلاه للتوضيح السريع والسهل. لا تستخدم متغيرات عمودية متطابقة داخل النطاقات المتداخلة.
ماذا عن وضع المتغيرات خارج الكتلة "الرئيسية ()"؟
المتغيرات العالمية
إن وضع المتغيرات خارج كتلة 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، "1st one: %d "، gValue + X) ؛ }
انتاج:
الثالثة: 730 الثانية: 8020 الأولى: 90010
أفضل الممارسات هي عدم استخدام نفس أسماء المعرفات لكل من المتغيرات العالمية والمحلية.
تنبيه: لاحظ أنني ذكرت: "مشروع"، وليس "ملف". يمكن أن يتكون المشروع من أكثر من ملف واحد. ومع ذلك، في مشروع واحد، لا يمكن أن يكون لديك أكثر من وظيفة main()
. وهذا خارج نطاق هذه المقالة. هناك بعض القواعد الإضافية مثل استخدام "الخارجية" فيما يتعلق بالمتغيرات العامة. سيتم مناقشة هذا الأمر بشكل أكبر في قسم آخر فيما يتعلق بالملفات المتعددة ضمن مشروع واحد داخل مكتبة VEX.
ما هي "مشكلة مساحة الاسم"؟
لا تندرج مساحة الاسم بالضرورة ضمن مناقشة المتغيرات "المحلية" مقابل المتغيرات "العالمية" في حد ذاتها، نظرًا لأن مساحة الاسم ليست متغيرة. ومع ذلك، يحتوي "namespace vex" على على نطاقه الخاص. نظرًا لأنه جزء من قاعدة التعليمات البرمجية للقالب التي يجب عليك تضمينها في كل برامج V5 الخاصة بك، فيجب تغطية قاعدة النطاق الخاصة بمساحة الاسم لفترة وجيزة في هذه المقالة.
تشبه كل مساحة اسم مساحة حيث يمكنك إنشاء مجموعة من المتغيرات والوظائف المتعلقة بتلك "المساحة" الفردية. يمكنك الوصول إلى جميع المتغيرات والوظائف والفئات المتاحة وما إلى ذلك المحددة داخل هذه "المساحة".
يمكنك البحث عن مساحة الاسم عبر الإنترنت على https://api.vexcode.cloud/v5/html/. للبحث السريع، يمكنك أيضًا النقر بزر الماوس الأيمن على "vex"، ثم النقر على "الانتقال إلى التعريف". ستجد ثروة من المعلومات حول ما هو متاح من مساحة الاسم "vex".
يمكنك الوصول إلى أي منها عن طريق القيام بما يلي: vex::
على سبيل المثال ارجع إلى رمز القالب:
باستخدام اسم النطاق vex ؛ vex :: brain Brain؛
بالإضافة إلى ذلك، فإن أي أسماء تتضمن متغيرات ووظائف وما إلى ذلك تم الإعلان عنها داخل هذه المساحة "vex" لن تتعارض مع "مساحة" أخرى في البرنامج.
على سبيل المثال، يمكنك أن تقرر إنشاء "myOwnNamespace" وعنوان المتغير "Brain". ليس من المستحسن أن تفعل شيئا من هذا القبيل، ولكن البرنامج سوف يسمح بذلك. وذلك لأنه تم تعريف ذلك ضمن "myOwnNamespace."