Constantes
Uma constante é um local onde um valor é armazenado, e seu valor não pode ser alterado durante o tempo de execução do programa.
Para criar uma constante, você deve especificar seu identificador e tipo, o que é conhecido como declarar uma constante, e fornecer um valor para essa constante, o que é conhecido como inicializar uma constante.
Uma constante deve ser inicializada ao ser declarada e deve ser declarada antes de poder ser usada.
A criação da constante tem a seguinte sintaxe:
Identificador: tipo = expressão

Constantes declaradas em uma função podem omitir o tipo:
Identificador := expressão

Se o tipo for omitido, o tipo da constante será inferido a partir da expressão usada para inicializar a constante. Apenas as constantes locais podem omitir o tipo, pois este descreve como a constante pode ser usada. Uma constante em um módulo faz parte da interface do módulo que a contém. Sem o tipo, essa interface não é óbvia.
No exemplo a seguir, um número aleatório é gerado em cada iteração do loop e usado para inicializar a constante RandomNumber
. O número aleatório apenas sairá do loop se for menor que vinte.
loop:
Limit := 20
# Para constantes locais, o tipo pode ser omitido.
RandomNumber : int = GetRandomNumber()
# Fornecer o tipo explicitamente pode facilitar a leitura do código.
if (RandomNumber < Limit):
break
Observe que em cada iteração do loop, uma nova constante chamada RandomNumber
é introduzida e recebe o resultado de GetRandomNumber()
como seu valor.
Variáveis
Além das constantes descritas acima, o Verse também possui variáveis.
Variáveis são semelhantes a constantes, mas são definidas com a palavra-chave var
, o que significa que você pode alterar seus valores a qualquer momento.
Por exemplo,
var MaxHealthUpgrade : int = 10
é uma variável de inteiro e seu valor nem sempre pode ser 10
.
A criação de variáveis tem a seguinte sintaxe:
var Identifier : type = expression

Observe que o tipo deve ser explicitamente especificado para variáveis.
Depois de criar uma variável, você pode atribuir um valor diferente a ela com a seguinte sintaxe:
set Identifier = expression

Além de =
, vários outros operadores podem ser usados para mutar uma variável. Por exemplo,
var X:int = 0
set X += 1
set X *= 2
Variáveis globais
Uma variável global no Verse é uma variável definida no escopo do módulo, por exemplo, não em uma função ou classe. Atualmente, a única maneira de declarar uma variável global no Verse é usar o tipo weak_map(session, t)
em que o tipo de chave é o tipo da instância atual da ilha Fortnite, ou session
, e o tipo de valor é qualquer tipo t
. Para obter detalhes sobre o weak_map
, consulte Mapa.
Como as variáveis globais são definidas no escopo do módulo, elas podem ser acessadas por qualquer código que tenha acesso a esse módulo.
O exemplo a seguir mostra como criar uma variável inteira global chamada GlobalInt
que é incrementada toda as vezes que ExampleFunction()
é chamado.
using { /Verse.org/Simulation } # For session
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}")
As variáveis globais têm as seguintes limitações:
- Apenas é possível acessar os valores da sessão atual em que você está, e não de qualquer outra sessão.
- A variável global
weak_map
não pode ser completamente lida ou gravada e, portanto, não é possível ler ou substituir os valores de todas as sessões. - Não é possível iterar pelos valores de um
weak_map
ou ver quantas sessões estão ativas no momento, porque umweak_map
não tem comprimento.