Soveltamisalan ymmärtäminen VEXcode Pro V5:ssä

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.

No, sinun on tiedettävä laajuussääntö - "scope"-ideoiden ymmärtäminen {... }lla

Paikalliset muuttujat

Tarkkaile näytekoodista luotua lähtöä. Tärkein ero pitäisi olla selvä. Nämä ovat kaikki "paikallisia" muuttujia sen {...} alueen sisällä.

int main( ) {
int X = 10, Y = 15;
{
  int X = 20;
   {
     int X = 30, Y = 35;
     brain.Screen.printAt(4,30, "3. yksi: %d, %d ", X, Y); 
   }
  	 brain.Screen.printAt(4, 60, "2. yksi: %d, %d", X, Y); 
	}
	brain.Screen.printAt(4, 90, "1. yksi: %d, %d", X, Y);	
	paluu 0;
}

Lähtö:

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

Yllä olevaa esimerkkiä käytetään nopeaan ja helppoon selvennukseen. Älä käytä identtisiä pystysuuntaisia ​​muuttujia sisäkkäisissä laajuuksissa.

Entäpä muuttujien sijoittaminen main( ) -lohkon ulkopuolelle?

Globaalit muuttujat

Muuttujien sijoittaminen main( ) -lohkon ulkopuolelle, mutta ei muihin funktioihin, tekee muuttujista maailmanlaajuisesti kaikkien projektin funktioiden käytettävissä. Näitä kutsutaan globaaleiksi muuttujiksi.

int gArvo = 90000; // tämä on globaali kaikille muille laajuuksille
  
int main() {

  Brain.Screen.setFont(fontType::mono30);
  int X = 10;
  {
      int X = 20, gArvo = 8000;
      {
         int X = 30, gArvo = 700;
         Brain.Screen.printAt(4, 30, " 3. yksi: %d ", gArvo + X); 
      }
      Brain.Screen.printAt(4, 60, " 2nd one: %d ", gArvo + X); 
   }
   Brain.Screen.printAt(4, 90, " 1. one: %d ", gArvo + X);
}

Lähtö:

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

Paras käytäntö on olla käyttämättä samoja tunnisteiden nimiä sekä globaaleille että paikallisille muuttujille.

Huomio: Huomaa, että mainitsin: "projekti", ei "tiedosto". Projekti voi koostua useammasta kuin yhdestä tiedostosta. Yhdessä projektissa voi kuitenkin olla vain yksi main( ) -funktio. Tämä ei kuulu tämän artikkelin soveltamisalaan. On olemassa joitain lisäsääntöjä, kuten "extern":n käyttö globaalien muuttujien osalta. Tätä käsitellään tarkemmin toisessa osassa, joka koskee useita tiedostoja yhdessä projektissa VEX Library.


Mikä on "nimiavaruus vex"?

Nimiavaruus ei välttämättä kuulu keskusteluun "paikallisista" vs. "globaalisista" muuttujista sinänsä, koska nimiavaruus ei ole muuttuja. Kuitenkin "nimiavaruus vex" sisältää oman laajuutensa. Koska se on osa mallikoodipohjaa, joka sinun TÄYTYY sisällyttää kaikkiin V5-ohjelmiin, nimitilan laajuussääntöä tulisi käsitellä lyhyesti tässä artikkelissa.

Jokainen nimiavaruus on kuin tila, johon voit luoda joukon muuttujia, toimintoja, jotka liittyvät kyseiseen yksittäiseen "avaruuteen". Saat pääsyn kaikkiin tässä "tilassa" määriteltyihin muuttujiin, funktioihin, luokkiin jne.

Voit etsiä nimiavaruuden verkosta osoitteesta https://api.vexcode.cloud/v5/html/. Nopeaa hakua varten voit myös napsauttaa hiiren kakkospainikkeella "vexiä" ja sitten klikata "Go to Definition". Löydät runsaasti tietoa siitä, mitä on saatavilla nimiavaruudesta "vex".

Koodikatkelma, joka havainnollistaa ohjelmointikonsepteja V5-kategoriassa, jossa on esimerkkikoodin rakenne ja syntaksi opetustarkoituksiin.

Voit käyttää mitä tahansa niistä tekemällä: vex::

esim. palaa mallikoodiin:

käyttäen nimiavaruutta vex;
vex::brain Aivot;

Lisäksi mitkään nimet, mukaan lukien muuttujat, funktiot jne., jotka on ilmoitettu tässä "hajottavassa" tilassa, eivät ole ristiriidassa ohjelman muiden "välilyöntien" kanssa.

Voit esimerkiksi luoda "myOwnNamespace" ja nimetä muuttujan "Brain". Ei ole suositeltavaa tehdä jotain tällaista, mutta ohjelma sallii sen. Tämä johtuu siitä, että tämä on määritetty "omanimitilassa".

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

Last Updated: