Ir para o conteúdo

Variáveis locais

Introdução

Variáveis locais no Harmony são o tipo de variável com escopo mais limitado. Eles são declarados dentro de um script e podem ser acessados somente dentro desse script. Por esta razão 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 do 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. Embora uma variável global possa ser usada para passar um valor entre diferentes scripts, a variável local deixa de ser visível para o sistema após a execução do script que a utiliza.

Para definir e usar uma variável local, simplesmente deixe 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

Os nomes das variáveis locais podem ser compostos a partir destes caracteres: letras (a-z, A-Z), números (0-9) e sublinhados. Outros caracteres, como pontos ou hífens, 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> marcação). 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 nomenclatura da variável pode ser simples. Por exemplo, variáveis locais podem ser nomeadas now, return, myVariable, etc.

Este exemplo recupera o valor de um nó e, se esse valor for nulo, define-o como a string "Not Set"e 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>