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
inequivale 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 * 4 → 14 (multiplication first) 10 > 5 && 3 < 7 → true (comparisons before AND) -
Com parênteses:
(2 + 3) * 4 → 20 (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
- Visão geral das expressões: todas as funções de expressão.