Zrozumienie zakresu w 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.

Cóż, musisz wiedzieć o regule zakresu - zrozumienie idei „zakresu” z {... }

Zmienne lokalne

Obserwuj dane wyjściowe wygenerowane na podstawie przykładowego kodu. Powinno być jasne, jaka jest główna różnica. Są to wszystkie zmienne „lokalne”, mieszczące się w zakresie {...}.

int main( ) {
int X = 10, Y = 15;
{
  int X = 20;
   {
     int X = 30, Y = 35;
     mózg.Screen.printAt(4,30, "trzeci: %d, %d ", X, Y); 
   }
  	 mózg.Screen.printAt(4, 60, "drugi: %d, %d", X, Y); 
	}
	mózg.Screen.printAt(4, 90, "pierwszy: %d, %d", X, Y);	
	zwróć 0;
}

Wyjście:

Trzeci: 30, 35 
Drugi: 20, 15 
Pierwszy: 10, 15

Powyższy przykład służy do szybkiego i łatwego wyjaśnienia. Nie używaj identycznych zmiennych pionowych w zakresach zagnieżdżonych.

A co powiesz na umieszczenie zmiennych poza blokiem „main()”?

Zmienne globalne

Umieszczenie zmiennych poza blokiem main() , ale nie w obrębie innych funkcji, sprawi, że zmienne będą globalnie używane przez wszystkie funkcje w projekcie. Nazywa się je zmiennymi globalnymi.

int gWartość = 90000; // to jest globalne dla wszystkich innych zakresów
  
int main() {

  Brain.Screen.setFont(fontType::mono30);
  int X = 10;
  {
      int X = 20, gValue = 8000;
      {
         int X = 30, gWartość= 700;
         Brain.Screen.printAt(4, 30, " trzeci: %d ", gValue + X); 
      }
      Brain.Screen.printAt(4, 60, " drugi: %d ", gValue + X); 
   }
   Brain.Screen.printAt(4, 90, " 1.: %d ", gValue + X);
}

Wyjście:

Trzeci: 730
Drugi: 8020 
Pierwszy: 90010

Najlepszą praktyką jest nieużywanie tych samych nazw identyfikatorów dla zmiennych globalnych i lokalnych.

Uwaga: Zwróć uwagę, że wspomniałem: „projekt”, a nie „plik”. Projekt może składać się z więcej niż jednego pliku. Jednak w ramach jednego projektu nie można mieć więcej niż jednej funkcji main( ). To wykracza poza zakres tego artykułu. Istnieją pewne dodatkowe zasady, takie jak używanie słowa „extern” w odniesieniu do zmiennych globalnych. Zostanie to szczegółowo omówione w innej sekcji dotyczącej wielu plików w ramach jednego projektu w Bibliotece VEX.


Co to jest „wkurzająca przestrzeń nazw”?

Przestrzeń nazw niekoniecznie podlega dyskusji na temat zmiennych „lokalnych” i „globalnych” per se, ponieważ Przestrzeń nazw nie jest zmienną. Jednak „przestrzeń nazw vex” zawiera własny zakres. Ponieważ jest to część bazy kodu szablonu, którą MUSISZ uwzględnić w całym programie V5, w tym artykule należy pokrótce omówić regułę zakresu przestrzeni nazw.

Każda przestrzeń nazw jest jak przestrzeń, w której można utworzyć zestaw zmiennych, funkcji odnoszących się do tej indywidualnej „przestrzeni”. Otrzymujesz dostęp do wszystkich dostępnych zmiennych, funkcji, klas itp. zdefiniowanych w tej „przestrzeni”.

Przestrzeń nazw można sprawdzić online pod adresem https://api.vexcode.cloud/v5/html/. Aby szybko wyszukać, możesz także kliknąć prawym przyciskiem myszy „irytację”, a następnie kliknąć „Przejdź do definicji”. Znajdziesz mnóstwo informacji na temat tego, co jest dostępne w przestrzeni nazw „vex”.

Fragment kodu ilustrujący koncepcje programowania w kategorii V5, zawierający przykładową strukturę kodu i składnię w celach edukacyjnych.

Możesz uzyskać dostęp do dowolnego z nich, wykonując: vex::

np. Odwołaj się do kodu szablonu:

używanie przestrzeni nazw vex;
vex::brain Mózg;

Ponadto wszelkie nazwy, w tym zmienne, funkcje itp. zadeklarowane w tej „irytującej” przestrzeni, nie będą powodować konfliktu z inną „spacją” w programie.

Możesz na przykład zdecydować o utworzeniu „myOwnNamespace” i nadać zmiennej nazwę „Mózg”. Nie zaleca się robienia czegoś takiego, ale program na to pozwoli. Dzieje się tak, ponieważ jest to zdefiniowane w „myOwnNamespace”.

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

Last Updated: