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.
Co powiesz na umieszczenie zmiennych poza blokiem „main()”?
Zmienne globalne
Umieszczenie zmiennych poza blokiem main()
, ale nie w innych funkcjach, sprawi, że zmienne będą globalnie używane przez wszystkie funkcje w projekcie. Są one określane jako zmienne globalne.
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 zarówno dla zmiennych globalnych, jak 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 jednym projekcie nie można mieć więcej niż jednej funkcji main()
. To wykracza poza zakres tego artykułu. Istnieje kilka dodatkowych zasad, takich jak używanie „extern” w odniesieniu do zmiennych globalnych. Zostanie to dokładniej omówione w innej sekcji dotyczącej wielu plików w jednym projekcie w Bazie wiedzy.
Co to jest „przestrzeń nazw vex”?
Przestrzeń nazw niekoniecznie wchodzi w zakres dyskusji na temat zmiennych „lokalnych” i „globalnych” per se, ponieważ przestrzeń nazw nie jest zmienną. Jednak „namespace vex” zawiera własny zakres. Ponieważ jest to część bazy kodu szablonu, którą MUSISZ uwzględnić w całym programie V5, reguła zakresu dla przestrzeni nazw powinna zostać pokrótce omówiona w tym artykule.
Każda przestrzeń nazw jest jak przestrzeń, w której można utworzyć zestaw zmiennych, funkcji odnoszących się do tej indywidualnej „przestrzeni”. Uzyskujesz dostęp do wszystkich dostępnych zmiennych, funkcji, klas itp. zdefiniowanych w tej „przestrzeni”.
Możesz sprawdzić przestrzeń nazw online pod adresem https://api.vexcode.cloud/v5/html/. Aby szybko wyszukać, możesz również kliknąć prawym przyciskiem myszy „Vex”, a następnie kliknąć „Przejdź do definicji”. Znajdziesz mnóstwo informacji o tym, co jest dostępne w przestrzeni nazw „vex”.
Możesz uzyskać dostęp do każdego z nich, wykonując: vex::
np. Wróć do kodu szablonu:
używanie przestrzeni nazw vex; vex::mózg Mózg;
Ponadto wszelkie nazwy zawierające zmienne, funkcje itp. zadeklarowane w tej przestrzeni „vex” nie będą kolidować z inną „spacją” w programie.
Na przykład możesz zdecydować się na utworzenie „myOwnNamespace” i nazwać zmienną „Mózg”. Nie zaleca się robienia czegoś takiego, ale program na to pozwoli. Dzieje się tak, ponieważ jest to zdefiniowane w „myOwnNamespace”.