A VEXcode Pro V5 hatókörének megértése

Nos, tudnod kell a hatókör szabályt – A „hatókör” fogalmának megértése {... }

Helyi változók

Figyelje meg a mintakódból generált kimenetet. Egyértelműnek kell lennie a fő különbségnek. Ezek mind „helyi” változók, {...} hatókörén belül.

int main( ) {
int X = 10, Y = 15;
{
  int X = 20;
   {
     int X = 30, Y = 35;
     agy.Screen.printAt(4,30, "3. egy: %d, %d ", X, Y); 
   }
  	 brain.Screen.printAt(4, 60, "2nd one: %d, %d", X, Y); 
	}
	brain.Screen.printAt(4, 90, "1st one: %d, %d", X, Y);	
	visszatérés 0;
}

Kimenet:

3.: 30, 35 
2.: 20, 15 
1.: 10, 15

A fenti példa a gyors és egyszerű tisztázásra szolgál. Ne használjon azonos függőleges változókat a beágyazott hatókörön belül.

Mit szólnál, ha a változókat a „main( )” blokkon kívülre helyeznéd?

Globális változók

Ha a változókat a main( ) blokkon kívülre helyezi, de semmilyen más függvényen belül nem, akkor a változókat a projekt összes függvénye globálisan használhatja. Ezeket globális változóknak nevezzük.

int gValue = 90000; // ez globális az összes többi hatókörre
  
int main() {

  Brain.Screen.setFont(fontType::mono30);
  int X = 10;
  {
      int X = 20, gÉrték = 8000;
      {
         int X = 30, gÉrték = 700;
         Brain.Screen.printAt(4, 30, " 3. one: %d ", gValue + X); 
      }
      Brain.Screen.printAt(4, 60, " 2nd one: %d ", gValue + X); 
   }
   Brain.Screen.printAt(4, 90, " 1st one: %d ", gValue + X);
}

Kimenet:

3.: 730
2.: 8020 
1.: 90010

A legjobb gyakorlat az, hogy nem használja ugyanazokat az azonosítóneveket a globális és a helyi változókhoz.

Figyelem: Vegye figyelembe, hogy említettem: „projekt”, nem „fájl”. Egy projekt több fájlból is állhat. Egy projekten belül azonban nem lehet egynél több main( ) függvény. Ez kívül esik a cikk hatókörén. Van néhány további szabály, például az „extern” használata a globális változókra vonatkozóan. Ezt tovább tárgyaljuk egy másik részben, amely több fájlról szól egyetlen projekten belül a VEX Libraryen belül.


Mi az a „névtér vex”?

A névtér önmagában nem feltétlenül esik bele a „lokális” és a „globális” változók tárgyalásába, mivel a névtér nem változó. A „vex névtér” azonban nem tartalmazza a saját hatókörét. Mivel ez a sablonkód alap része, amelyet az összes V5-ös programba KÖTELEZŐ belefoglalni, a névtér hatóköri szabályával ebben a cikkben röviden foglalkozni kell.

Minden névtér olyan, mint egy tér, ahol létrehozhat egy sor változót, függvényt, amelyek az adott „térhez” tartoznak. Hozzáférhet az összes elérhető változóhoz, függvényhez, osztályhoz stb., amely ezen a „területen” van definiálva.

A névteret online megkeresheti: https://api.vexcode.cloud/v5/html/. A gyors kereséshez kattintson a jobb gombbal a „vex”-re, majd kattintson a „Go to Definition” elemre. Rengeteg információt talál arról, hogy mi áll rendelkezésre a „vex” névtérben.

codesnippet5.png

Bármelyikhez hozzáférhet a következőképpen: vex::

pl. Lásd vissza a sablonkódot:

névtér használata vex;
vex::agy Agy;

Ezen túlmenően, ezen a „vex” szóközön belül deklarált nevek, beleértve a változókat, függvényeket stb., nem ütköznek a program másik „szóközével”.

Dönthet például úgy, hogy létrehozza a „sajatNévteret”, és a változónak „Agy” címet ad. Nem ajánlott ilyesmit csinálni, de a program megengedi. Ez azért van, mert ez a "sajátnévtér"-ben van definiálva.

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

Last Updated: