Zrozumienie zakresu w VEXcode Pro V5

Cóż, musisz wiedzieć o Regule zakresu — Zrozumienie idei „zakresu” z {... }

Zmienne lokalne

Obserwuj dane wyjściowe wygenerowane z przykładowego kodu. Główna różnica powinna być jasna. Są to wszystkie zmienne „lokalne” w zakresie {...} .

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, "druga: %d, %d”, X, Y); 
	}
	brain.Screen.printAt(4, 90, "Pierwszy: %d, %d”, X, Y);	
	return 0;
}

Wyjście:

Trzecie: 30, 35 
Drugie: 20, 15 
Pierwsze: 10, 15

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

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ą mogły być używane globalnie 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, gValue= 700;
         Brain.Screen.printAt(4, 30, „ trzeci: %d „, gValue + X); 
      }
      Brain.Screen.printAt(4, 60, " drugi: %d ”, gValue + X); 
   }
   Brain.Screen.printAt(4, 90, " Pierwszy: %d ”, gValue + X);
}

Wyjście:

Trzecie: 730
Drugie: 8020 
Pierwsze: 90010

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

Uwaga: Zauważ, ż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 „przestrzeń nazw vex”?

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żesz 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”.

codenippet5.png

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

np. Wróć do kodu szablonu:

używanie przestrzeni nazw vex;
vex::mózg 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: