Afin d’étendre la logique et la fonctionnalité de vos modèles, HubL prend en charge plusieurs opérateurs et tests d’expression clés. Les opérateurs vous permettent d’exécuter des fonctions mathématiques, d’effectuer des comparaisons, de compliquer la logique des modèles et de modifier la restitution du balisage. En outre, cet article contient une liste complète des tests d’expression qui peuvent être utilisés dans HubL.
Symbole | Description |
---|---|
+ | Ajoute deux objets, généralement des valeurs numériques. Pour concaténer des chaînes ou des listes, vous devez utiliser l’opérateur~ à la place. |
- | Soustrait un nombre d’un autre. |
/ | Divise des nombres. |
% | Renvoie le reste de la division de nombres. |
// | Divise deux nombres et renvoie le résultat entier tronqué. Par exemple, {{ 20 // 7 }} ou 2 . |
* | Multiplie des nombres. |
** | Élève l’opérande gauche à la puissance de l’opérande droit |
Symbole | sténographie | Description |
---|---|---|
== | eq | Égal à. Est défini sur true si les deux objets ont des valeurs égales. |
!= | ne | N’est pas égal à. Est défini sur true si les deux objets ne sont pas égaux. |
> | gt | Est supérieur à. Est défini sur true si la valeur de l’opérande gauche est supérieure à l’opérande droit. |
>= | gte | Est supérieur ou égal à. Est défini sur true si l’opérande gauche est supérieur ou égal à l’opérande droit. |
< | lt | Inférieur à. Est défini sur true si l’opérande gauche est inférieur à l’opérande droit. |
<= | lte | Est inférieur ou égal à. Est défini sur true si l’opérande gauche est inférieur ou égal à l’opérande droit. |
|selectattr()
.Symbole | Description |
---|---|
and | Renvoie true si l’opérande gauche et l’opérande droit sont exacts. Dans le cas contraire, renvoie false . Cet opérateur ne se comporte pas comme l’opérateur and en Python ou l’opérateur && en JavaScript. Découvrez-en davantage sur l’utilisation des opérateurs and ci-dessous. |
or | Renvoie le premier opérande s’il est exact. Sinon, renvoie le deuxième opérande. Cet opérateur est équivalent à or en Python et JavaScript|| Découvrez-en davantage sur l’utilisation des opérateurs or ci-dessous. |
is | Associe deux opérandes pour un énoncé affirmatif. |
not | Invalide une instruction conditionnelle, en conjonction avec is . |
(expr) | Regroupe une expression conditionnelle pour l’ordre des opérations. Par exemple : (10 - 2) * variable . |
? | L’opérateur ternaire peut être utilisé pour écrire rapidement une logique conditionnelle. Il accepte 3 arguments (expression, condition true, condition false). Il évalue une expression et renvoie la condition correspondante. |
or
se comporte comme l’opérateur or
en Python et l’opérateur ||
en JavaScript. Il renverra le premier opérande si l’expression conditionnelle est définie comme true, sinon il renverra le deuxième opérande. Un cas d’utilisation courant de l’opérateur or
consiste à définir une valeur de secours lorsqu’une valeur de variable n’est pas définie.
and
se comporte différemment de l’opérateur and
en Python et de l’opérateur &&
en JavaScript. Dans HubL, and
renvoie toujours une valeur booléenne : lorsque l’expression est évaluée comme true, true
est renvoyée, sinon elle renvoie false
. Les opérateurs Python et JavaScript, quant à eux, renverront une valeur d’opérande selon que l’instruction est définie sur true ou false.
[]
) et les dictionnaires vides ({}
) sont considérés comme faux. C’est équivalent au comportement de Python, mais différent de JavaScript, où []
et {}
sont exacts.
Symbole | Description |
---|---|
in | Vérifie si une valeur se trouve dans une séquence. |
is | Effectue un test d’expression. |
| | Applique un filtre. |
~ | Concatène les valeurs. |
==
pour effectuer le même test.
Dans l’exemple ci-dessous, la largeur des articles du blog est ajustée en fonction du nombre total d’articles dans la boucle. L’exemple de sortie suppose qu’il y a 4 articles dans le blog.
even-post
est attribuée à la division d’élément d’article. Autrement, une classe odd-post
est attribuée.
jobs
pour voir si elle peut être parcourue par itération. Comme la variable contient une liste de tâches, la fonction if est définie sur true
et la boucle s’exécute. Si la variable avait contenu une seule valeur, la fonction if aurait imprimé cette valeur avec un balisage différent à la place. Découvrez-en davantage sur les boucles for.
null
.
is
.
is
.
True
.
L’exemple ci-dessous utilise un module de case à cocher booléenne pour afficher un message d’alerte.
none
, dans la mesure où le test undefined est défini sur true
lorsque la variable est présente mais n’a pas de valeur, alors que none est défini sur true
lorsque la variable a une valeur nulle.
L’exemple ci-dessous vérifie l’existence de la variable “my_var” dans un modèle.
lower
ci-dessus.