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.
Bueno, necesita saber sobre la Regla de alcance: comprender las ideas de "alcance" con {... }
Variables locales
Observe la salida generada a partir del código de muestra. Debe tener clara la diferencia principal. Todas estas son variables "locales", dentro de su {...} alcance.
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);
return 0;
}
Resultado:
3 ° uno: 30, 35 2 ° uno: 20, 15 1 ° uno: 10, 15
El ejemplo anterior se utiliza para una aclaración rápida y fácil. No utilice variables verticales idénticas dentro de ámbitos anidados.
¿Qué tal poner las variables fuera del bloque "main( )"?
Variables Globales
Poner variables fuera del bloque main( ), pero no dentro de ninguna otra función, hará que las variables sean globalmente utilizables por todas las funciones del proyecto. Estas se conocen como variables globales.
int gValue = 90000; // this is global to all other scope
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);
}
Resultado:
3 ° uno: 730 2 ° uno: 8020 1 ° uno: 90010
La mejor práctica es no usar los mismos nombres de identificador para las variables globales y locales.
Atención: Tenga en cuenta que mencioné: "proyecto", no "archivo". Un proyecto puede constar de más de un archivo. Sin embargo, dentro de un solo proyecto, no puede tener más de una función main( ). Esto está fuera del alcance de este artículo. Hay algunas reglas adicionales como el uso de "externo" con respecto a las variables globales. Esto se discutirá más a fondo en otra sección con respecto a múltiples archivos dentro de un solo proyecto dentro de la Biblioteca VEX.
¿Qué es "namespace vex"?
El espacio de nombres no entra necesariamente en la discusión de las variables "locales" frente a las "globales" per se, ya que el espacio de nombres no es una variable. Sin embargo, "namespace vex" contiene su propio alcance. Dado que es parte de la base de código de plantilla que DEBE incluir en todo su programa V5, la regla de alcance para el espacio de nombres debe cubrirse brevemente en este artículo.
Cada espacio de nombres es como un espacio donde puedes crear un conjunto de variables, funciones pertenecientes a ese "espacio" individual. Obtienes acceso a todas las variables, funciones, clases, etc. disponibles definidas dentro de este "espacio".
Puede buscar el espacio de nombres en línea en https://api.vexcode.cloud/v5/html/. Para una búsqueda rápida, también puede hacer clic con el botón derecho en "Vex" y luego hacer clic en "Ir a la definición". Encontrará una gran cantidad de información sobre lo que está disponible en el espacio de nombres "Vex".
Puedes acceder a cualquiera de ellos haciendo: vex::
por ejemplo, consulte el código de la plantilla:
usar el espacio de nombres vex; vex::brain Brain;
Además, cualquier nombre que incluya variables, funciones, etc. declarado dentro de este espacio "Vex" no entrará en conflicto con otro "espacio" en el programa.
Por ejemplo, puede decidir crear "myOwnNamespace" y titular una variable "Brain". No se recomienda que hagas algo así, pero el programa lo permitirá. Esto se debe a que esto se define dentro de "myOwnNamespace".