Nun, Sie müssen sich mit der Bereichsregel auskennen - Verständnis der Ideen von "Bereich" mit {... }

Lokale Variablen

Beobachten Sie die aus dem Beispielcode generierte Ausgabe. Der Hauptunterschied sollte klar sein. Dies sind alles "lokale" Variablen innerhalb ihres {...} -Bereichs.

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, "2nd one: %d, %d", X, Y); 
	}
	brain.Screen.printAt(4, 90, "1st one: %d, %d", X, Y);	
	gibt 0 zurück;
}

Ausgabe:

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

Das obige Beispiel dient der schnellen und einfachen Klärung. Verwenden Sie keine identischen vertikalen Variablen in verschachtelten Bereichen.

Wie wäre es, die Variablen außerhalb des "main( )"-Blocks zu platzieren?

Globale Variablen

Wenn Variablen außerhalb des Blocks main( ) platziert werden, jedoch nicht innerhalb anderer Funktionen, werden Variablen global von allen Funktionen verwendet im Projekt. Diese werden als globale Variablen bezeichnet.

int gWert = 90000; // Dies gilt global für alle anderen Bereiche
  
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, " 3. Eins: %d ", gValue + X); 
      }
      Brain.Screen.printAt(4, 60, " Zweiter: %d ", gWert + X); 
   }
   Brain.Screen.printAt(4, 90, " 1st one: %d ", gWert + X);
}

Ausgabe:

Dritte: 730
Zweite: 8020 
Erste: 90010

Es empfiehlt sich, nicht dieselben Bezeichnernamen für globale und lokale Variablen zu verwenden.

Achtung: Beachten Sie, dass ich erwähnt habe: „Projekt“, nicht „Datei“. Ein Projekt kann aus mehr als einer Datei bestehen. Innerhalb eines einzelnen Projekts können Sie jedoch nicht mehr als eine main( ) -Funktion haben. Dies ist außerhalb des Rahmens dieses Artikels. Es gibt einige zusätzliche Regeln wie die Verwendung von „extern“ in Bezug auf globale Variablen. Dies wird in einem anderen Abschnitt in Bezug auf mehrere Dateien innerhalb eines einzelnen Projekts in der Knowledge Base näher erläutert.


Was ist "Namespace vex"?

Namespace fällt nicht unbedingt per se in die Diskussion von „lokalen“ vs. „globalen“ Variablen, da Namespace keine Variable ist. "Namespace vex" enthält jedoch seinen eigenen Gültigkeitsbereich. Da es Teil der Vorlagencodebasis ist, die Sie in alle Ihre V5-Programme aufnehmen MÜSSEN, sollte die Gültigkeitsbereichsregel für Namespaces in diesem Artikel kurz behandelt werden.

Jeder Namespace ist wie ein Space, in dem Sie eine Reihe von Variablen erstellen können, Funktionen, die sich auf diesen individuellen „Space“ beziehen. Sie erhalten Zugriff auf alle verfügbaren Variablen, Funktionen, Klassen usw., die in diesem „Raum“ definiert sind.

Sie können den Namespace online unter https://api.vexcode.cloud/v5/html/nachschlagen. Für eine schnelle Suche können Sie auch mit der rechten Maustaste auf "Vex" klicken und dann auf "Gehe zu Definition" klicken. Sie finden eine Fülle von Informationen darüber, was im Namensraum „vex“ verfügbar ist.

codenippet5.png

Sie können auf jeden von ihnen zugreifen, indem Sie Folgendes tun: vex::

z.B. Siehe zurück zum Vorlagencode:

Verwenden von Namensraum-Vex;
vex::brain Gehirn;

Darüber hinaus werden alle Namen, einschließlich Variablen, Funktionen usw., die in diesem "vex"-Raum deklariert sind, nicht mit einem anderen "Leerzeichen" im Programm in Konflikt geraten.

Sie können beispielsweise "myOwnNamespace" erstellen und eine Variable mit "Brain" betiteln. Es wird nicht empfohlen, so etwas zu tun, aber das Programm lässt dies zu. Dies liegt daran, dass dies in "myOwnNamespace" definiert ist.

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