Para expandir a lógica e a funcionalidade dos seus modelos, o HubL aceita vários operadores-chave e testes de expressão. Os operadores permitem executar funções matemáticas, fazer comparações, complicar a lógica do modelo e alterar a renderização da marcação. Além disso, este artigo contém uma lista abrangente de testes de expressão que podem ser usados no HubL.
Símbolo | Descrição |
---|---|
+ | Soma dois objetos, geralmente valores numéricos. Para concatenar strings ou listas, você deve usar o operador~ em vez de. |
- | Subtrai um número de outro. |
/ | Divide números. |
% | Retorna o restante da divisão de números |
// | Divida dois números e retorne o resultado inteiro truncado. Por exemplo, {{ 20 // 7 }} é 2 . |
* | Multiplica números. |
** | Eleve o operando esquerdo ao poder do operando direito. |
Símbolo | encurtado | Descrição |
---|---|---|
== | eq | Igual a. Avalia como verdadeiro se os dois objetos têm valores iguais. |
!= | ne | Não é igual a. Avalia como verdadeiro se os dois objetos não forem iguais. |
> | gt | Maior que. Avalia como verdadeiro se o valor do operando esquerdo for maior que o do operando direito. |
>= | gte | Maior ou igual a. Avalia como verdadeiro se o operando esquerdo for maior ou igual ao operando direito. |
< | It | Menor que. Avalia como verdadeiro se o operando esquerdo for menor que o operando direito. |
<= | lte | Menor ou igual a. Avalia como verdadeiro se o operando esquerdo for menor ou igual ao operando direito. |
|selectattr()
.Símbolo | Descrição |
---|---|
and | Retornos true se tanto o operando esquerdo quanto o direito forem verdadeiros. Caso contrário, retorna false . Este operador não se comporta como o operador and em Python ou o operador && em JavaScript. Saiba mais sobre o uso de operadores and abaixo. |
or | Retorna o primeiro operando se for verdadeiro. Caso contrário, retorna o segundo operando. Este operador é equivalente a or em Python e || em JavaScript. Saiba mais sobre o uso de operadores or abaixo. |
is | Une dois operandos para uma declaração afirmativa. |
not | Nega uma afirmação, em conjunto com is . |
(expr) | Agrupa uma expressão para a ordem de operações. Por exemplo, (10 - 2) * variable . |
? | O operador ternário pode ser usado para escrever rapidamente lógica condicional. Aceita 3 argumentos: expressão, condição verdadeira, condição falsa. Avalia uma expressão e retorna a condição correspondente. |
or
se comporta como o operador or
em Python e o operador ||
em JavaScript. Ele retornará o primeiro operando se a expressão for avaliada como verdadeira, caso contrário, retornará o segundo operando. Um caso de uso comum para o operador or
está definindo um valor de fallback quando um valor de variável não está definido.
and
se comporta de forma diferente do operador and
em Python e o operador &&
em JavaScript. No HubL, and
sempre retornará um valor booleano: quando a expressão for avaliada como verdadeira, true
é retornado, caso contrário retornará false
. Os operadores Python e JavaScript, por outro lado, retornarão um valor de operando com base na avaliação da instrução como verdadeira ou falsa.
[]
) e dicionários vazios ({}
) são considerados falsos. Isso é equivalente ao comportamento em Python, mas diferente do JavaScript, onde []
e {}
são verdadeiros.
Símbolo | Descrição |
---|---|
in | Verifica se um valor está em uma sequência. |
is | Executa um teste de expressão. |
| | Aplica um filtro. |
~ | Concatena valores. |
==
para fazer o mesmo teste.
No exemplo abaixo, a largura dos posts do blog é ajustada com base no número total de postagens no loop. O exemplo de saída pressupõe que havia 4 posts no blog.
even-post
será atribuída ao div do item do post. Caso contrário, uma classe de odd-post
é atribuída.
jobs
para ver se é possível iterar. Como a variável contém uma lista de empregos, o declaração if avaliaria para true
, e o loop seria executado. Se a variável contivesse um único valor, a instrução if imprimiria esse valor com marcação diferente. Saiba mais sobre loops for.
null
.
is
.
is
.
True
.
O exemplo abaixo usa um módulo de caixa de seleção booleana para exibir uma mensagem de alerta.
none
em que indefinido será true
quando a variável está presente, mas não tem valor; enquanto que nenhum será true
quando a variável tem um valor nulo.
O exemplo abaixo verifica um modelo para a existência da variável “my_var”.
lower
acima.