حسنًا ، أنت بحاجة إلى معرفة قاعدة النطاق - فهم أفكار "النطاق" باستخدام {... }

المتغيرات المحلية

لاحظ الإخراج الناتج من نموذج التعليمات البرمجية. يجب أن يكون واضحا بشأن الاختلاف الرئيسي. هذه جميع المتغيرات "المحلية" ، ضمن نطاقها {...} .

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

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

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


ما هي "مشكلة مساحة الاسم"؟

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

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

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

codenippet5.png

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

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

باستخدام اسم النطاق vex ؛
vex :: brain Brain؛

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

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

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