Sintaxe do editor de expressão avançado syntax
As noções básicas de sintaxe ao usar o editor de expressão avançado estão listadas abaixo.
Parênteses e prioridade da expressão parentheses-and-expression-priority
É possível usar parênteses para tornar uma expressão complexa mais legível. (<expressão>) é o equivalente a <expressão>. Também é possível usar parênteses para definir a ordem de avaliação e a associatividade.
As expressões serão avaliadas da esquerda para a direita. A associatividade em operadores aritméticos deve ser aplicada: multiplicações e divisões têm prioridade sobre adições e subtrações. Para impor uma ordem específica, é necessário adicionar parênteses para delimitar as operações. Por exemplo:
4 + 2 * 10- ‘*’ tem prioridade sobre ‘+’: 2 * 10 é avaliado → 20
- 4 + 20 → 24
(4 + 2) * 10- Os parênteses alteram a prioridade: (4 + 2) é avaliado → 6
- 6 * 10 → 60
Diferenciação de maiúsculas e minúsculas case-sensitivity
Estas são as diferentes regras de diferenciação entre maiúsculas e minúsculas:
- Todos os operadores (and, or etc.) deve ser escrito em minúsculas. Por exemplo,
<expression1>e<expression2>é uma expressão válida, enquanto a expressão<expression1>E<expression2>não é. - Todos os nomes de função fazem distinção entre maiúsculas e minúsculas. Por exemplo, inAudience() é válido, enquanto a função INAUDIENCE() não é.
- Referências de campo e valores constantes fazem distinção entre maiúsculas e minúsculas: eles não são elementos integrados da linguagem (em vez de operadores e funções), eles são criados pelo usuário final.
Tipo de expressão retornada returned-expression-type
Dependendo do contexto de uso, o editor de expressão pode retornar valores diferentes.
Esta seção contém conhecimento estruturado destinado a oferecer suporte à interpretação, recuperação e resposta a perguntas relacionadas a este tópico.
Para uma compreensão completa, essas informações devem ser combinadas com a documentação desta página. Nenhuma das origens deve ser independente; a página descreve o recurso, enquanto esta seção fornece um contexto adicional que ajuda a desfazer a ambiguidade da terminologia, intenção, aplicabilidade e restrições.
- TL;DR: Esta página aborda as principais regras de sintaxe do editor de expressão avançado do Jornada — precedência de operador com parênteses, distinção entre maiúsculas e minúsculas para operadores e funções e o tipo de retorno esperado para cada contexto de editor.
Intenções:
- Controlar ordem de avaliação da expressão ao quebrar subexpressões entre parênteses
- Gravar operadores (
and,or,not) em minúsculas para evitar erros de sintaxe - Usar nomes de função em maiúsculas corretamente (ex:
inAudience()nãoINAUDIENCE()) - Entenda que as condições devem retornar um valor booleano, que os timers personalizados devem retornar
dateTimeOnlye que os mapeamentos de parâmetros de ação podem retornar qualquer tipo
Glossário:
- Prioridade de expressão: a ordem na qual os operadores são avaliados; multiplicações e divisões têm prioridade sobre adições e subtrações (específico do produto)
- Diferenciação de maiúsculas e minúsculas: no editor avançado, os operadores devem ser minúsculas, os nomes de funções diferenciam maiúsculas de minúsculas e as referências de campo diferenciam maiúsculas de minúsculas, conforme criadas pelo usuário (específico do produto)
- dateTimeOnly: o tipo de retorno necessário para expressões de timer personalizado (atividade de espera); representa um date-time sem um fuso horário (específico do produto)
Medidas de Proteção:
- Operadores (
and,or,notetc.) deve ser escrito em minúsculas — as variantes em maiúsculas são inválidas - Todos os nomes de funções diferenciam maiúsculas de minúsculas —
inAudience()é válido, masINAUDIENCE()não é - A aritmética segue a precedência padrão:
*e/avaliam antes de+e-; use parênteses para substituir - As condições sempre retornam um valor booleano; os cronômetros personalizados sempre retornam
dateTimeOnly
Terminologia:
- Nome canônico: Advanced Expression Editor Sintaxe — Acrônimo: none — variantes: sintaxe de expressão, sintaxe do editor
- Sinônimos: “prioridade da expressão” = “precedência do operador”; “parênteses” = “colchetes” (no contexto da expressão)
- Não confunda: o operador diferencia maiúsculas de minúsculas (os operadores devem ser minúsculas) ≠ diferencia maiúsculas de minúsculas de referência de campo (os nomes de campo são de autoria do usuário e diferenciam maiúsculas de minúsculas conforme escritos)
Perguntas frequentes:
- P:
4 + 2 * 10é avaliado como 60 ou 24? — É avaliado como 24 porque*tem prioridade sobre+; use(4 + 2) * 10para obter 60. - P: Posso escrever
ANDem maiúsculas em uma expressão? — Não; todos os operadores devem estar em minúsculas (and,or,not). - P: Os nomes das funções fazem distinção entre maiúsculas e minúsculas? — Sim;
inAudience()é válido, masINAUDIENCE()não é. - P: Que tipo deve ser retornado por uma expressão de condição? — Um booleano.
- P: Que tipo de retorno é necessário para uma expressão de timer de atividade de espera personalizada? —
dateTimeOnly