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.
Λοιπόν, πρέπει να ξέρετε για τον Κανόνα Πεδίου Εφαρμογής - Κατανόηση των εννοιών του "πεδίου εφαρμογής" με {... }
Τοπικές Μεταβλητές
Παρατηρήστε την έξοδο που παράγεται από το δείγμα κώδικα. Θα πρέπει να είναι σαφές ποια είναι η κύρια διαφορά. Αυτές είναι όλες «τοπικές» μεταβλητές, εντός του πεδίου εφαρμογής {...}.
int main() {
int X = 10, Y = 15;
{
int X = 20;
{
int X = 30, Y = 35;
brain.Screen.printAt(4,30, "3ο: %d, %d ", X, Y);
}
brain.Screen.printAt(4, 60, "2ο: %d, %d", X, Y);
}
brain.Screen.printAt(4, 90, "1ο: %d, %d", X, Y);
return 0;
}
Παραγωγή:
3ο: 30, 35
2ο: 20, 15
1ο: 10, 15
Το παραπάνω παράδειγμα χρησιμοποιείται για γρήγορη και εύκολη διευκρίνιση. Μην χρησιμοποιείτε πανομοιότυπες κάθετες μεταβλητές μέσα σε ένθετα πεδία εφαρμογής.
Τι θα λέγατε να βάλουμε τις μεταβλητές εκτός του μπλοκ "main()";
Καθολικές Μεταβλητές
Η τοποθέτηση μεταβλητών εκτός του μπλοκ main() , αλλά όχι εντός οποιασδήποτε άλλης συνάρτησης, θα καταστήσει τις μεταβλητές καθολικά χρησιμοποιήσιμες από όλες τις συναρτήσεις του έργου. Αυτές αναφέρονται ως καθολικές μεταβλητές.
int gValue = 90000; // αυτό είναι καθολικό για όλα τα άλλα πεδία εφαρμογής
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ο: %d ", gValue + X);
}
Brain.Screen.printAt(4, 60, " 2ο: %d ", gValue + X);
}
Brain.Screen.printAt(4, 90, " 1ο: %d ", gValue + X);
}
Παραγωγή:
3ο: 730
2ο: 8020
1ο: 90010
Η καλύτερη πρακτική είναι να μην χρησιμοποιείτε τα ίδια ονόματα αναγνωριστικών τόσο για τις καθολικές όσο και για τις τοπικές μεταβλητές.
Προσοχή: Σημειώστε ότι ανέφερα: «έργο» και όχι «αρχείο». Ένα έργο μπορεί να αποτελείται από περισσότερα από ένα αρχεία. Ωστόσο, μέσα σε ένα μόνο έργο, δεν μπορείτε να έχετε περισσότερες από μία συνάρτηση main(). Αυτό είναι εκτός του πεδίου εφαρμογής αυτού του άρθρου. Υπάρχουν ορισμένοι πρόσθετοι κανόνες, όπως η χρήση του "extern" σχετικά με τις καθολικές μεταβλητές. Αυτό θα συζητηθεί περαιτέρω σε άλλη ενότητα σχετικά με πολλά αρχεία σε ένα μόνο έργο στη Βιβλιοθήκη VEX.
Τι είναι το "namespace vex";
Ο χώρος ονομάτων δεν εμπίπτει απαραίτητα στη συζήτηση για τις «τοπικές» έναντι των «καθολικών» μεταβλητών καθαυτού, καθώς ο χώρος ονομάτων δεν είναι μεταβλητή. Ωστόσο, το "namespace vex" περιέχει το δικό του πεδίο εφαρμογής. Δεδομένου ότι αποτελεί μέρος της βάσης κώδικα προτύπου που ΠΡΕΠΕΙ να συμπεριλάβετε σε όλα τα προγράμματα V5, ο κανόνας εμβέλειας για τον χώρο ονομάτων θα πρέπει να καλυφθεί εν συντομία σε αυτό το άρθρο.
Κάθε χώρος ονομάτων είναι σαν ένας χώρος όπου μπορείτε να δημιουργήσετε ένα σύνολο μεταβλητών, συναρτήσεων που σχετίζονται με αυτόν τον μεμονωμένο «χώρο». Αποκτάτε πρόσβαση σε όλες τις διαθέσιμες μεταβλητές, συναρτήσεις, κλάσεις κ.λπ. που ορίζονται μέσα σε αυτόν τον "χώρο".
Μπορείτε να αναζητήσετε τον χώρο ονομάτων στο διαδίκτυο στη διεύθυνση https://api.vexcode.cloud/v5/html/. Για γρήγορη αναζήτηση, μπορείτε επίσης να κάνετε δεξί κλικ στο "vex" και, στη συνέχεια, να κάνετε κλικ στο "Go to Definition". Θα βρείτε πληθώρα πληροφοριών σχετικά με το τι είναι διαθέσιμο από τον χώρο ονομάτων "vex".
Μπορείτε να αποκτήσετε πρόσβαση σε οποιοδήποτε από αυτά κάνοντας: vex::
π.χ. Ανατρέξτε στον κώδικα του προτύπου:
χρησιμοποιώντας τον χώρο ονομάτων vex;
vex::brain Brain;
Επιπλέον, οποιαδήποτε ονόματα, συμπεριλαμβανομένων μεταβλητών, συναρτήσεων κ.λπ., που δηλώνονται μέσα σε αυτόν τον χώρο "vex" δεν θα έρχονται σε διένεξη με έναν άλλο "χώρο" στο πρόγραμμα.
Για παράδειγμα, μπορείτε να αποφασίσετε να δημιουργήσετε το "myOwnNamespace" και να ονομάσετε μια μεταβλητή "Brain". Δεν συνιστάται να κάνετε κάτι τέτοιο, αλλά το πρόγραμμα θα το επιτρέψει. Αυτό συμβαίνει επειδή αυτό ορίζεται μέσα στο "myOwnNamespace".