Avaliador de expressões

Calcule o resultado de uma expressão com números inteiros, decimais, variáveis numéricas, variáveis de string para comparações de strings, operadores aritméticos e Boolianos ou um conjunto de funções.

Propriedades

Propriedade
Descrição
Expressão
A expressão a ser calculada.
A expressão pode conter um número ilimitado de parênteses abertos e fechados corretamente. Se a expressão não seguir a sintaxe correta, o conversor não realizará o cálculo.
Modo
A direção do vínculo dinâmico:
  • Leia do nó de origem para o pai.
  • Grave do nó pai para o nó de origem.
  • Leia do nó de origem para o pai e grave do pai para o nó de origem.

Origem

Uma ou mais variáveis identificadas por:
Espaço reservado
{
index_number
}
Inteiro progressivo igual ou maior que zero. Por exemplo
{1}
Espaço reservado
{#
placeholder_identifier
}
String prefixada com
#
. Por exemplo
{#speed}
DICA: Use qualquer combinação de espaços reservados em qualquer ordem. Use qualquer número de espaços reservados na expressão.

Literais

  • Boolianos.
  • Inteiros.
  • Decimais onde o separador decimal deve ser um ponto.
  • Números hexadecimais com o prefixo
    0x
    .
  • Texto como uma string delimitada por aspas duplas.
    DICA: Aspas duplas repetidas duas vezes (
    ""
    ) são interpretadas como uma sequência de escape.
  • Data e hora. Por exemplo,
    2017-06-28T15:26:06.0790910
    .

Operadores

Categoria
Operador
Associatividade
Comentários
Unário
Unário negativo:
-
NOT bit a bit:
~
Operador de conversão:
(type)
Direita para a esquerda
O operador de conversão
(type)
se aplica a todos os tipos de dados numéricos e somente Booliano.
Multiplicativo
*
,
/
,
%
Esquerda para a direita
Aditivo
+
,
-
Esquerda para a direita
Deslocamento
<<
,
>>
Esquerda para a direita
Os operadores Deslocamento e Relacional se aplicam a estes tipos de dados:
  • Numeric
  • DateTime
  • Duration
Relacional
<
,
<=
,
>
,
>=
Esquerda para a direita
Igualdade
==
,
!=
Esquerda para a direita
Os operadores Igualdade se aplicam a estes tipos de dados:
  • Numeric
  • DateTime
  • Duration
  • String
  • LocalizedText
AND, XOR, OR bit a bit
&
,
^
,
|
Esquerda para a direita
AND lógico
&&
Esquerda para a direita
OR lógico
||
Esquerda para a direita

Tipos de dados

Convenções de tipo de dados no avaliador de expressões:
  • Inteiros literais são Int32.
  • Literais decimais são Double.
  • Valores numéricos são considerados Int32.
  • Literais verdadeiros e falsos são interpretados como Boolean.
  • O operador / sempre retorna um valor Double.
  • O operador % gera uma exceção quando há divisão por módulo zero.
  • O operador % aceita operandos Float e Double.
  • Todas as funções retornam um valor Double exceto pelo sinal, o que retorna um valor Int32.
O
type
de operadores de conversão unários pode ser destes tipos de dados:
  • bool, Boolean
  • sbyte, SByte
  • short, Int16
  • int, Int32
  • long, Int64
  • byte, Byte
  • ushort, UInt16
  • uint, UInt32
  • ulong, UInt64
  • float, Float
  • double, Double
Operadores aplicados a tipos de dados específicos:
Operador
Operando1
Operando2
Descrição
Mais
DateTime
Número integral
Operand2
é interpretado como milissegundos.
Mais
Número integral
DateTime
Operand1
é interpretado como milissegundos.
Mais
DateTime
TimeZone (Estrutura)
Operand2
é interpretado como minutos (TimeZone.Offset).
Mais
TimeZone (Estrutura)
DateTime
Operand1
é interpretado como minutos (TimeZone.Offset).
Mais
TimeZone
Número integral
Operand1
é interpretado como minutos (TimeZone.Offset).
Operand2
é interpretado como minutos.
Mais
Número integral
TimeZone
Operand1
é interpretado como minutos.
Operand2
é interpretado como minutos (TimeZone.Offset).
Menos
DateTime
Número integral
Operand2
é interpretado como milissegundos.
Menos
DateTime
TimeZone (Estrutura)
Operand2
é interpretado como minutos (TimeZone.Offset).
Menos
TimeZone
Número integral
Operand1
é interpretado como minutos (TimeZone.Offset).
Operand2
é interpretado como minutos.

Funções

Funções para uso no avaliador de expressões:
Função
Sintaxe
Descrição
Tipo de dados de retorno
max
max(
value1
,
value2
,
value3
, ...)
Retorna o valor mais ato.
Double
min
min(
value1
,
value2
,
value3
, ...)
Retorna o valor mais baixo.
Double
avg
avg(
value1
,
value2
,
value3
, ...)
Retorna a média dos valores determinados.
Double
abs
abs(
value
)
Retorna o valor absoluto do número determinado.
Double
trunc
trunc(
value
)
Retorna a parte inteira de um número decimal.
Double
ceil
ceil(
value
)
Retorna o valor aproximado para mais.
Double
floor
floor(
value
)
Retorna o valor aproximado para menos.
Double
round
round(
value
)
Retorna a aproximação ao inteiro mais próximo.
Double
sqrt
sqrt(
value
)
Retorna a raiz quadrada do número determinado.
Double
sign
sign(
value
)
Verifica se o número de ponto flutuante determinado é negativo. Retorna
0
se verdadeiro ou
1
se falso.
Int32
like
like(
string_value
,
pattern
)
Retorna
verdadeiro
se o parâmetro
string_value
corresponder ao
pattern
.
Boolean
isempty
isempty(
variable
)
Verifica se um determinado NodeID, String, LocalizedText ou DataTime está vazio.
Boolean
if
if(
condition
,
value_if_true
,
value_if_false
)
Verifica se os parâmetros
value_if_true
e
value_if_false
são do mesmo tipo de dados.
Tipo de dados do
value_if_true
left_of
left_of(string, pattern)
Retorna a substring à esquerda da primeira ocorrência do padrão de expressão regular.
IMPORTANTE: Não use curingas em padrões.
String
right_of
right_of(string, pattern)
Retorna a substring à direita da primeira ocorrência do padrão de expressão regular.
IMPORTANTE: Não use curingas em padrões.
String

Output

O valor resultante da expressão.

Exemplo

Dê sua opinião
Tem dúvidas ou comentários sobre esta documentação? Por favor, envie seu comentário aqui.