Nesta página

Operadores e precedência

As expressões do ProcessMind são compatíveis com vários operadores para cálculos aritméticos, comparações e operações lógicas.

Operadores

Operadores aritméticos

Símbolo Name Descrição Exemplo Resultado
+ Adição Soma dois números ou concatena strings 5 + 3 8
- Subtração Subtrai o segundo número do primeiro 10 - 4 6
* Multiplicação Multiplica dois números 6 * 7 42
/ Divisão Divide o primeiro número pelo segundo 15 / 3 5

Operadores de comparação

Símbolo Name Descrição Exemplo Resultado
== Igual Verifica se dois valores são iguais Status == "Active" verdadeiro ou falso
!= Diferente Verifica se dois valores são diferentes Status != "Deleted" verdadeiro ou falso
< Menor que Verifica se o primeiro valor é menor que o segundo Amount < 100 verdadeiro ou falso
> Maior que Verifica se o primeiro valor é maior que o segundo Amount > 1000 verdadeiro ou falso
<= Menor ou igual a Verifica se o primeiro valor é menor ou igual ao segundo Count <= 10 verdadeiro ou falso
>= Maior ou igual a Verifica se o primeiro valor é maior ou igual ao segundo Score >= 80 verdadeiro ou falso
in Na lista Verifica se um valor está em uma lista de valores Status in ["A", "B", "C"] verdadeiro ou falso

Operadores lógicos

Símbolo Name Descrição Exemplo Resultado
&& E lógico Retorna true se as duas condições forem verdadeiras Amount > 100 && Status == "Active" verdadeiro ou falso
and E lógico (palavra-chave) Alias para &&. Retorna true se as duas condições forem verdadeiras Amount > 100 and Status == "Active" verdadeiro ou falso
|| Ou lógico Retorna true se pelo menos uma condição for verdadeira Priority == "High" || Urgent == true verdadeiro ou falso
or Ou lógico (palavra-chave) Alias para ||. Retorna true se pelo menos uma condição for verdadeira Priority == "High" or Urgent == true verdadeiro ou falso
! Não lógico Nega um valor booleano !IsDeleted verdadeiro ou falso
not Não lógico (palavra-chave) Alias para !. Nega um valor booleano not IsDeleted verdadeiro ou falso

Precedência

Operadores com maior precedência são avaliados primeiro. Você pode usar parênteses para substituir a precedência padrão.

Precedência Category Operadores Associativity
1 Ou lógico || , or Da esquerda para a direita
2 E lógico && , and Da esquerda para a direita
3 Igualdade == , != Da esquerda para a direita
4 Comparação < , > , <= , >= , in Da esquerda para a direita
5 Adição/subtração + , - Da esquerda para a direita
6 Multiplicação/divisão * , / Da esquerda para a direita
7 Unário ! , not , - Da direita para a esquerda
8 Chamada de função () Da esquerda para a direita
9 Parênteses ( )

Observações sobre operadores

  • Concatenação de strings com +: o operador + também concatena strings quando um dos operandos é uma string:

    "Hello" + " " + "World""Hello World"
  • O operador in equivale a várias comparações com OR:

    Status in ["Pending", "Active", "Review"]
    // is the same as:
    Status == "Pending" || Status == "Active" || Status == "Review"

Exemplos

  • Combinando condições:

    // Both conditions must be true
    Amount > 1000 && Region == "Europe"
    
    // At least one condition must be true  
    Priority == "High" or Escalated == true
    
    // Negation
    not IsArchived

Operador ternário

O operador ternário oferece uma forma abreviada de escrever uma lógica simples de if/else:

  • Sintaxe:

    condition ? valueIfTrue : valueIfFalse
  • Exemplo:

    Amount > 1000 ? "High" : "Low"
  • Equivalente a:

    if(Amount > 1000, "High", "Low")

Exemplos de precedência

  • Sem parênteses:

    2 + 3 * 414  (multiplication first)
    10 > 5 && 3 < 7true  (comparisons before AND)
  • Com parênteses:

    (2 + 3) * 420  (addition first)

Sintaxe especial

  • Identificadores entre aspas: se um nome de coluna contiver espaços ou caracteres especiais, use crases:

    `Order Amount` * 0.1
    `Customer Name`
    `2024 Revenue`
  • Escape de strings: use a barra invertida para aplicar escape a caracteres especiais em strings:

    "Line 1\nLine 2"     // newline
    "Tab\there"          // tab
    "Say \"Hello\""      // double quote
    "Path\\to\\file"     // backslash
  • Valores nulos: use null para representar valores ausentes:

    if(Department == null, "Unknown", Department)

    Ou use a função isNull():

    if(isNull(Department), "Unknown", Department)

Tópicos relacionados