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; { 整數 X = 20; { int X = 30,Y = 35; Brain.Screen.printAt(4,30, "第三個: %d, %d ", X, Y); } Brain.Screen.printAt(4, 60, "第二個: %d, %d", X, Y); } Brain.Screen.printAt(4, 90, "第一個: %d, %d", X, Y); 返回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, " 第三個: %d ", gValue + X); } Brain.Screen.printAt(4, 60, " 第二個: %d ", gValue + X); } Brain.Screen.printAt(4, 90, " 第一個: %d ", gValue + X); }
輸出:
第三個:730 第二個:8020 第一個:90010
最佳實踐是不要對全域變數和局部變數使用相同的標識符名稱。
注意: 請注意我提到的是:“專案”,而不是“文件”。 一個項目可以包含多個文件。 但是,在單一專案中,不能有多個 main( )
函數。 這超出了本文的範圍。 還有一些附加規則,例如關於全域變數使用“extern”。 這將在 VEX 庫內單一項目內的多個文件的另一節中進一步討論。
什麼是「命名空間 vex」?
命名空間本身不一定屬於「本地」變數與「全域」變數的討論,因為命名空間不是變數。 然而,「namespace vex」 包含它自己的範圍。 由於它是您必須包含在所有 V5 程式中的範本程式碼庫的一部分,因此本文應簡要介紹命名空間的範圍規則。
每個命名空間就像一個空間,您可以在其中建立一組與該單獨「空間」相關的變數和函數。 您可以存取此「空間」內定義的所有可用變數、函數、類別等。
您可以在 https://api.vexcode.cloud/v5/html/線上找到命名空間。 為了快速查找,您也可以右鍵單擊“vex”,然後按一下“轉到定義”。 您將在命名空間“vex”中找到大量可用資訊。
您可以透過執行下列操作來存取其中任何一項: vex::
例如參考模板程式碼:
使用命名空間 vex; vex::大腦 大腦;
此外,在此「vex」空間內宣告的任何名稱(包括變數、函數等)都不會與程式中的其他「空間」衝突。
例如,您可以決定建立“myOwnNamespace”,並將變數命名為“Brain”。 不建議您這樣做,但程序允許。 這是因為這是在「myOwnNamespace」中定義的。