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”中定义的。