Constantes
Una constante es una ubicación donde se almacena un valor, y su valor no puede cambiar durante el tiempo de ejecución del programa.
Para crear una constante, debes especificar su identificador y su tipo. Esto se denomina declarar una constante y proporciona un valor para la misma. Este proceso se denomina inicialización de una constante.
Una constante debe ser inicializada cuando se declara, y debe ser declarada antes de poder utilizarse.
La creación de constantes tiene esta sintaxis:
Identifier : type = expression

Las constantes declaradas en una función pueden omitir el tipo:
Identifier := expression

Si se omite el tipo, el tipo de la constante se infiere de la expresión empleada para inicializar la constante. Solo las constantes locales pueden omitir el tipo porque describe cómo se puede utilizar la constante. Una constante de un módulo forma parte de la interfaz del módulo que la contiene. Sin el tipo, esa interfaz no es evidente.
En el siguiente ejemplo, se genera un número aleatorio en cada iteración del bucle y se utiliza para inicializar la constante RandomNumber
. El número aleatorio solo saldrá del bucle si es inferior a veinte.
loop:
Limit := 20
# Para las constantes locales, se puede omitir el tipo.
RandomNumber : int = GetRandomNumber()
# Proporcionar el tipo explícitamente puede facilitar la lectura del código.
if (RandomNumber < Limit):
break
Observa que en cada iteración del bucle se introduce una nueva constante llamada RandomNumber
y se le asigna el resultado de GetRandomNumber()
como su valor.
Variables
Además de las constantes descritas anteriormente, Verse también tiene variables.
Las variables son similares a las constantes, pero se definen con la palabra clave var
, lo que significa que puedes cambiar sus valores en cualquier momento.
Por ejemplo,
var MaxHealthUpgrade : int = 10
Es una variable de entero, y su valor puede no ser siempre 10
.
La creación de variables tiene esta sintaxis:
var Identifier : type = expression

Ten en cuenta que el tipo debe especificarse explícitamente para las variables.
Después de crear una variable, puedes asignarle un valor diferente con la siguiente sintaxis:
set Identifier = expression

Además de =
, puedes usar muchos otros operadores para mutar una variable. Por ejemplo,
var X:int = 0
set X += 1
set X *= 2
Variables globales
Una variable global en Verse es una variable que se define en el ámbito del módulo, por ejemplo, no en una función ni en una clase. Actualmente, la única forma de declarar una variable global en Verse es utilizar el tipo weak_map(session, t)
, donde el tipo clave es el tipo de la instancia actual de la isla de Fortnite, o session
, y el tipo valor es cualquier tipo t
. Para saber más sobre weak_map
, consulta Mapa.
Como las variables globales se definen en el ámbito del módulo, son accesibles por cualquier código que tenga acceso a ese módulo.
El siguiente ejemplo muestra cómo crear una variable entera global llamada GlobalInt
que se incrementa cada vez que se llama a ExampleFunction()
.
using { /Verse.org/Simulation } # Para la sesión
var GlobalInt:weak_map(session, int) = map{}
ExampleFunction():void=
X := if (Y := GlobalInt[GetSession()]) then Y + 1 else 0
if:
set GlobalInt[GetSession()] = X
Print("{X}")
Las variables globales tienen las siguientes limitaciones:
- Solo puedes acceder a los valores de la sesión actual en la que estás, no a los de cualquier otra sesión.
- La variable global
weak_map
no se puede leer ni escribir completamente, por lo que no es posible leer o anular los valores de todas las sesiones. - No puedes iterar por los valores de un
weak_map
ni ver cuántas sesiones están activas actualmente, porque unweak_map
no tiene longitud.