Розуміння області дії у 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, "3rd one: %d, %d ", X, Y); 
   }
  	 brain.Screen.printAt(4, 60, "2nd one: %d, %d", X, Y); 
	}
	brain.Screen.printAt(4, 90, "1st one: %d, %d", X, Y);	
	повертає 0;
}

Вихід:

3-й: 30, 35 
2-й: 20, 15 
1-й: 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, " 3rd one: %d ", gValue + X); 
      }
      Brain.Screen.printAt(4, 60, " 2nd one: %d ", gValue + X); 
   }
   Brain.Screen.printAt(4, 90, " 1st one: %d ", gValue + X);
}

Вихід:

3-й: 730
2-й: 8020 
1-й: 90010

Найкраща практика — не використовувати однакові імена ідентифікаторів для глобальних і локальних змінних.

Увага: Зверніть увагу, що я згадав: «проект», а не «файл». Проект може складатися з кількох файлів. Проте в межах одного проекту ви не можете мати більше однієї функції main( ). Це виходить за рамки цієї статті. Є деякі додаткові правила, як-от використання «extern» щодо глобальних змінних. Це буде обговорено далі в іншому розділі щодо кількох файлів в межах одного проекту в межах VEX Library.


Що таке «простір імен vex»?

Простір імен не обов’язково потрапляє в обговорення «локальних» проти «глобальних» змінних як таких, оскільки простір імен не є змінною. Однак «простір імен vex» містить власну область. Оскільки це частина бази коду шаблону, яку ви ПОВИННІ включити в усі ваші програми V5, правило області видимості для простору імен слід коротко розглянути в цій статті.

Кожен простір імен схожий на простір, де ви можете створити набір змінних, функцій, що відносяться до цього окремого «простору». Ви отримуєте доступ до всіх доступних змінних, функцій, класів тощо, визначених у цьому «просторі».

Ви можете знайти простір імен онлайн за адресою https://api.vexcode.cloud/v5/html/. Для швидкого пошуку ви також можете клацнути правою кнопкою миші на «vex», а потім натиснути «Перейти до визначення». Ви знайдете велику кількість інформації про те, що доступно в просторі імен «vex».

Фрагмент коду, який ілюструє концепції програмування в категорії V5, показуючи приклад структури коду та синтаксис для навчальних цілей.

Ви можете отримати доступ до будь-якого з них, виконавши: vex::

наприклад, зверніться до коду шаблону:

використання простору імен vex;
vex::brain Мозок;

Крім того, будь-які імена, включаючи змінні, функції тощо, оголошені всередині цього простору «vex», не конфліктуватимуть з іншим «пробілом» у програмі.

Наприклад, ви можете вирішити створити «myOwnNamespace» і назвати змінну «Brain». Не рекомендується робити щось подібне, але програма це дозволить. Це тому, що це визначено в "myOwnNamespace."

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

Last Updated: