فهم النطاق في VEXcode Pro V5

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() ، ولكن ليس ضمن أي وظائف أخرى، سيجعل المتغيرات قابلة للاستخدام عالميًا بواسطة جميع الوظائف في المشروع. ويشار إلى هذه باسم المتغيرات العالمية.

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

أفضل الممارسات هي عدم استخدام نفس أسماء المعرفات لكل من المتغيرات العالمية والمحلية.

تنبيه: لاحظ أنني ذكرت: "مشروع"، وليس "ملف". يمكن أن يتكون المشروع من أكثر من ملف واحد. ومع ذلك، ضمن مشروع واحد، لا يمكن أن يكون لديك أكثر من وظيفة رئيسية ( ). وهذا خارج نطاق هذه المقالة. هناك بعض القواعد الإضافية مثل استخدام "الخارجية" فيما يتعلق بالمتغيرات العامة. سيتم مناقشة هذا الأمر بمزيد من التفصيل في قسم آخر يتعلق بملفات متعددة ضمن مشروع واحد في مكتبة VEX.


ما هو "namespace vex"؟

لا تندرج مساحة الاسم بالضرورة ضمن مناقشة المتغيرات "المحلية" مقابل المتغيرات "العالمية" في حد ذاتها، نظرًا لأن مساحة الاسم ليست متغيرة. ومع ذلك، فإن "مساحة الاسم vex" تحتوي على نطاقًا خاصًا بها. نظرًا لأنه جزء من قاعدة التعليمات البرمجية للقالب التي يجب عليك تضمينها في كل برامج V5 الخاصة بك، فيجب تغطية قاعدة النطاق الخاصة بمساحة الاسم لفترة وجيزة في هذه المقالة.

تشبه كل مساحة اسم مساحة حيث يمكنك إنشاء مجموعة من المتغيرات والوظائف المتعلقة بتلك "المساحة" الفردية. يمكنك الوصول إلى جميع المتغيرات والوظائف والفئات المتاحة وما إلى ذلك المحددة داخل هذه "المساحة".

يمكنك البحث عن مساحة الاسم عبر الإنترنت على https://api.vexcode.cloud/v5/html/. للبحث السريع، يمكنك أيضًا النقر بزر الماوس الأيمن على "vex"، ثم النقر على "الانتقال إلى التعريف". ستجد ثروة من المعلومات حول ما هو متاح من مساحة الاسم "vex".

لقطة شاشة لبرنامج VEXcode Pro V5 لمشروع C++ مع النقر بزر الماوس الأيمن على أمر using namespace vex. تعرض قائمة السياق خيار "الانتقال إلى التعريف"، وقد تم تحديد هذا الخيار.

يمكنك الوصول إلى أي منها عن طريق القيام بما يلي: vex::

على سبيل المثال، ارجع إلى رمز القالب:

باستخدام مساحة الاسم vex؛
فيكس::الدماغ الدماغ؛

بالإضافة إلى ذلك، فإن أي أسماء تتضمن متغيرات ووظائف وما إلى ذلك تم الإعلان عنها داخل هذه المساحة "vex" لن تتعارض مع "مساحة" أخرى في البرنامج.

على سبيل المثال، يمكنك أن تقرر إنشاء "myOwnNamespace" وعنوان المتغير "Brain". ليس من المستحسن أن تفعل شيئا من هذا القبيل، ولكن البرنامج سوف يسمح بذلك. وذلك لأنه تم تعريف ذلك ضمن "myOwnNamespace."

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: