Variáveis locais
Introdução
Variáveis locais no Harmony são o tipo de variável que é mais limitado em escopo. Elas são declaradas dentro de um script e podem ser acessadas somente dentro desse script. Por esse motivo, você deve usar uma variável local somente se a variável for necessária temporariamente no script atual.
Cuidado
Não use uma variável local se quiser que a variável persista para uso em outras partes do projeto. Para uso fora do script atual, use uma variável global ou variável de projeto.
Crie uma variável local
Como uma variável local não pode ter um valor antes de ser definida, você deve defini-la antes de ser usada.
No sistema, uma variável local é reconhecida pela ausência do cifrão $
que normalmente precede o nome de uma variável global. Porque o $
está ausente, uma variável local não é "vista" globalmente. Enquanto uma variável global pode ser usada para passar um valor entre scripts diferentes, a variável local para de ser visível ao sistema após a execução do script que a usa.
Para definir e usar uma variável local, basta deixar de fora o $
. Uma variável local não pode ser definida ou recuperada com Set
e Get
funções.
Nomes de variáveis locais
Nomes de variáveis locais podem ser compostos por estes caracteres: letras (a-z, A-Z), números (0-9) e sublinhados. Outros caracteres, como pontos ou hifens, não são permitidos e podem causar problemas.
Exemplos
Neste exemplo, now
é uma variável local e só está disponível neste script (ou seja, antes do término </trans>
etiqueta). Em contraste, $tomorrow
é uma variável global que está disponível até o final da cadeia de operação atual:
<trans>
now = Now();
WriteToOperationLog("The time is " + now);
$tomorrow = now + 60*60*24;
</trans>
Como o escopo das variáveis locais está dentro do script, a nomeação da variável pode ser simples. Por exemplo, as variáveis locais podem ser nomeadas now
, return
, myVariable
, etc.
Este exemplo recupera o valor de um nó e, se esse valor for nulo, o define como a string "Not Set"
, e então retorna o valor:
<trans>
value = root$transaction.request$body$Calculate$input.Operand1$;
if(IsNull(value),
value = "Not Set"
);
value
</trans>
Este exemplo recupera o valor de três nós, adiciona o maior dos dois primeiros valores ao terceiro valor e, em seguida, retorna o terceiro valor:
<trans>
value1 = root$transaction.request$body$Calculate$input.Operand1$;
value2 = root$transaction.request$body$Calculate$input.Operand2$;
value3 = root$transaction.request$body$Calculate$input.Operand3$;
if(value1 > value2,
value3 += value1
, //else
value3 += value2
);
value3
</trans>