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