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.
Nun, Sie müssen etwas über die Scope-Regel wissen – die Idee des „Scope“ mit {... }verstehen
Lokale Variablen
Beobachten Sie die Ausgabe, die aus dem Beispielcode generiert wird. 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
Zur schnellen und einfachen Verdeutlichung dient das obige Beispiel. Verwenden Sie keine identischen vertikalen Variablen innerhalb verschachtelter Bereiche.
Wie wäre es, wenn Sie die Variablen außerhalb des „main( )“-Blocks platzieren?
Globale Variablen
Wenn Sie Variablen außerhalb des Blocks main( ) platzieren, aber nicht innerhalb anderer Funktionen, werden Variablen global für alle Funktionen im Projekt nutzbar. Diese werden als globale Variablen bezeichnet.
int gValue = 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, " 3rd one: %d ", gValue + X);
}
Brain.Screen.printAt(4, 60, " 2nd one: %d ", gValue + X);
}
Brain.Screen.printAt(4, 90, " 1st one: %d ", gValue + X);
}
Ausgabe:
3. Nummer: 730 2. Nummer: 8020 1. Nummer: 90010
Die beste Vorgehensweise besteht darin, nicht dieselben Bezeichnernamen für globale und lokale Variablen zu verwenden.
Achtung: Beachten Sie, dass ich „Projekt“ und nicht „Datei“ erwähnt habe. 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 liegt außerhalb des Rahmens dieses Artikels. Es gibt einige zusätzliche Regeln, wie z. B. die Verwendung von „extern“ in Bezug auf globale Variablen. Dies wird in einem anderen Abschnitt bezüglich mehrerer Dateien innerhalb eines einzelnen Projekts innerhalb der VEX-Bibliotheknäher erläutert.
Was ist „Namespace-Vex“?
Namespace fällt nicht unbedingt in die Diskussion von „lokalen“ vs. „globalen“ Variablen per se, da Namespace keine Variable ist. Allerdings enthält „Namespace Vex“ einen eigenen Bereich. Da es Teil der Vorlagencodebasis ist, die Sie in Ihr gesamtes V5-Programm einbeziehen MÜSSEN, sollte die Bereichsregel für Namespace in diesem Artikel kurz behandelt werden.
Jeder Namespace ist wie ein Raum, in dem Sie eine Reihe von Variablen und Funktionen erstellen können, die sich auf diesen einzelnen „Raum“ beziehen. Sie erhalten Zugriff auf alle verfügbaren Variablen, Funktionen, Klassen usw., die in diesem „Bereich“ 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 „Zur Definition gehen“ klicken. Sie finden eine Fülle von Informationen darüber, was im Namensraum „vex“ verfügbar ist.
Sie können auf jede davon zugreifen, indem Sie Folgendes tun: vex::
Verweisen Sie beispielsweise auf den Vorlagencode:
Verwendung des Namensraums ärgerlich; vex::brain Gehirn;
Darüber hinaus stehen alle Namen, einschließlich Variablen, Funktionen usw., die in diesem „vex“-Bereich deklariert werden, nicht im Konflikt mit einem anderen „Bereich“ im Programm.
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 es zu. Das liegt daran, dass dies in „myOwnNamespace“ definiert ist.