Понимание области действия в 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;
{
  интервал Х = 20;
   {
     int X = 30, Y = 35;
     Brain.Screen.printAt(4,30, "3-й: %d, %d ", X, Y); 
   }
  	 Brain.Screen.printAt(4, 60, "2-й: %d, %d", X, Y); 
	}
	Brain.Screen.printAt(4, 90, "1-й: %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);
  целое число X = 10;
  {
      int X = 20, gValue = 8000;
      {
         int X = 30, gValue= 700;
         Brain.Screen.printAt(4, 30, "3-й: %d ", gValue + X); 
      }
      Brain.Screen.printAt(4, 60, «2-й: %d », gValue + X); 
   }
   Brain.Screen.printAt(4, 90, «1-й: %d », gValue + X);
}

Выход:

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

Лучше всего не использовать одни и те же имена идентификаторов как для глобальных, так и для локальных переменных.

Внимание: Обратите внимание, я упомянул: «проект», а не «файл». Проект может состоять из более чем одного файла. Однако в рамках одного проекта вы не можете иметь более одной функции main(). Это выходит за рамки данной статьи. Существуют некоторые дополнительные правила, такие как использование «extern» в отношении глобальных переменных. Это будет дополнительно обсуждаться в другом разделе, посвященном нескольким файлам в одном проекте в библиотеке VEX.


Что такое «пространство имен vex»?

Пространство имен не обязательно попадает в обсуждение «локальных» и «глобальных» переменных как таковых, поскольку пространство имен не является переменной. Однако «пространство имен vex» содержит собственную область действия. Поскольку это часть базы кода шаблона, которую вы ДОЛЖНЫ включить во все свои программы V5, правило области действия для пространства имен должно быть кратко рассмотрено в этой статье.

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

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

Фрагмент кода, иллюстрирующий концепции программирования в категории V5, с примером структуры кода и синтаксиса для образовательных целей.

Вы можете получить доступ к любому из них, выполнив: vex::

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

использование пространства имен vex;
vex::brain Мозг;

Кроме того, любые имена, включая переменные, функции и т. д., объявленные внутри этого «пространства», не будут конфликтовать с другим «пространством» в программе.

Например, вы можете создать «myOwnNamespace» и назвать переменную «Brain». Не рекомендуется делать что-то подобное, но программа это позволит. Это потому, что это определено в «myOwnNamespace».

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

Last Updated: