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, necesitas saber sobre la regla de alcance: comprender las ideas de "alcance" con {... }
Variables locales
Observe el resultado generado a partir del código de muestra. Debe quedar clara la diferencia principal. Todas estas son variables "locales", dentro de su alcance {...}.
int principal( ) { int X = 10, Y = 15; { int X = 20; { int X = 30, Y = 35; cerebro.Screen.printAt(4,30, "tercero: %d, %d ", X, Y); } cerebro.Screen.printAt(4, 60, "segundo: %d, %d", X, Y); } cerebro.Screen.printAt(4, 90, "primero: %d, %d", X, Y); devuelve 0; }
Producción:
3.º: 30, 35 2.º: 20, 15 1.º: 10, 15
El ejemplo anterior se utiliza para una aclaración rápida y sencilla. No utilice variables verticales idénticas dentro de ámbitos anidados.
¿Qué tal poner las variables fuera del bloque “principal ()”?
Variables globales
Poner variables fuera del bloque main( )
, pero no dentro de ninguna otra función, hará que todas las funciones del proyecto puedan utilizar las variables globalmente. Estas se conocen como variables globales.
int gValor = 90000; // esto es global para todos los demás ámbitos int main() { Brain.Screen.setFont(fontType::mono30); enteros X = 10; { int X = 20, gValor = 8000; { int X = 30, gValor = 700; Brain.Screen.printAt(4, 30, " 3.º: %d ", gValue + X); } Brain.Screen.printAt(4, 60, " 2do: %d ", gValue + X); } Brain.Screen.printAt(4, 90, " 1.º: %d ", gValue + X); }
Producción:
3.º: 730 2.º: 8020 1.º: 90010
La mejor práctica es no utilizar 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. Existen algunas reglas adicionales, como el uso de "externo" con respecto a las variables globales. Esto se discutirá con más detalle en otra sección sobre múltiples archivos dentro de un solo proyecto dentro de la Biblioteca VEX.
¿Qué es el “espacio de nombres molesto”?
El espacio de nombres no necesariamente entra en la discusión sobre variables “locales” versus “globales” per se, ya que el espacio de nombres no es una variable. Sin embargo, el “espacio de nombres 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 se debe cubrir 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. Obtiene 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 derecho en "vex" y luego hacer clic en "Ir a 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:
usando el espacio de nombres vex; vex::cerebro Cerebro;
Además, cualquier nombre que incluya variables, funciones, etc. declarado dentro de este espacio "molesto" no entrará en conflicto con otro "espacio" del programa.
Por ejemplo, puedes decidir crear "myOwnNamespace" y titular una variable "Cerebro". No es recomendable que hagas algo así, pero el programa lo permitirá. Esto se debe a que esto se define dentro de "myOwnNamespace".