Opérateurs
Les opérateurs sont des symboles qui indiquent au compilateur HubL d’exécuter diverses opérations qui aboutissent à la sortie finale. Les opérateurs sont placés entre opérandes afin de relier les deux valeurs, que ce soit pour exécuter des fonctions mathématiques, effectuer des comparaisons ou implémenter des expressions booléennes.
Mathématiques
Les opérateurs mathématiques standard peuvent être utilisés pour calculer des valeurs dans le contexte d’un modèle.Comparaison
Les opérateurs de comparaison peuvent être utilisés pour évaluer les valeurs pour la logique de modèle. Vous pouvez consulter quelques exemples d’utilisation d’opérateurs de comparaison dans les fonctions if.Logique
Les opérateurs logiques vous permettent d’implémenter des expressions booléennes ainsi que de combiner plusieurs expressions en instructions conditionnelles uniques.
Utilisation des opérateurs et/ou
Dans HubL, l’opérateur
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.
Autres opérateurs HubL
Vous trouverez ci-dessous d’autres opérateurs HubL importants qui peuvent être utilisés pour effectuer diverses tâches.Tests d’expression
Les tests d’expression sont diverses conditions booléennes qui peuvent être évaluées à l’aide d’opérateurs logiques.boolean
Vérifie si l’objet est booléen (au sens strict, pas dans sa capacité d’évaluation pour une expression véridique).containing
Vérifie si une variable de liste contient une valeur.containingall
Vérifie si une variable de liste contient toutes les valeurs d’une autre liste.defined
Vérifie si une variable est définie dans le contexte du modèle. Bien que vous puissiez utiliser ce test d’expression, l’écriture d’une fonction if sans aucun opérateur aura pour effet de vérifier par défaut si la variable est définie ou non. Dans l’exemple ci-dessous, le paramètre color d’un module de couleur est testé. Si le paramètre color n’avait pas de valeur, le modèle afficherait une couleur de fond noire par défaut. S’il est défini, la couleur d’arrière-plan définie par l’utilisateur sera restituée.divisibleby
Vérifie si un objet est divisible par un autre nombre. Par exemple, ci-dessous, une boucle for est créée pour parcourir une liste de types d’animaux. Chaque type d’animal est imprimé dans une division et un style en ligne différent est appliqué toutes les 5 divisions (largeur :100 %). Ce concept pourrait être appliqué à un blog où un balisage différent est restitué pour un certain modèle d’article. Pour en savoir plus sur les boucles for et loop.index, consultez cet article.equalto
Vérifie si la valeur d’une variable est égale à une constante ou à une autre variable. Vous pouvez également utiliser l’opérateur== 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
Vérifie si une variable numérique est un nombre pair. L’exemple ci-dessous montre une boucle simplifiée d’énumération de blog, où si l’itération actuelle de la boucle est paire, une classeeven-post est attribuée à la division d’élément d’article. Autrement, une classe odd-post est attribuée.
float
Vérifie si une variable numérique est un nombre à virgule flottante.integer
Vérifie si une variable est un nombre entier.iterable
Vérifie si une variable peut être parcourue en boucle. Cet exemple vérifie une variable appeléejobs 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.
lower
Vérifie si une chaîne est en minuscules. L’exemple ci-dessous utilise une fonction unless et un filtre pour vérifier qu’une chaîne de texte saisie dans un module de texte est toujours en minuscules.mapping
Vérifie si un objet est un dictionnaire L’exemple ci-dessous vérifie si l’objet de contact est un dictionnaire.none
Vérifie si une variable a une valeurnull.
number
Vérifie si la valeur d’une variable est un nombre. L’exemple ci-dessous vérifie si une variable est ou non une variable et, si tel est le cas, la convertit en millions.odd
Vérifie si une variable numérique est un nombre impair. Vous trouverez ci-dessous le même exemple que le test d’expression inverse even décrit précédemment.sameas
Vérifie si deux variables ont ou non la même valeur. L’exemple ci-dessous définit deux variables et vérifie ensuite si elles sont identiques ou non.sequence
Semblable au test iterable, ce test d’expression vérifie si une variable est une séquence. L’exemple ci-dessous vérifie si une variable est une séquence, puis parcourt cette séquence de genres musicaux.chaîne
Vérifie si la valeur stockée dans une variable est du texte. L’exemple ci-dessous vérifie si une variable est une chaîne de caractères et, si tel est le cas, applique un filtre de titre pour modifier la capitalisation.string_containing
Vérifie si une sous-chaîne fournie est contenue dans une autre chaîne. Ce test d’expression est utilisé en conjonction avec l’opérateuris.
string_startingwith
Vérifie si une chaîne commence par une chaîne particulière. Il est utilisé en conjonction avec l’opérateuris.
truthy
Vérifie si une expression est égale àTrue.
L’exemple ci-dessous utilise un module de case à cocher booléenne pour afficher un message d’alerte.
undefined
Vérifie si une variable est indéfinie dans le contexte du modèle. Ce test est différent du test d’expressionnone, 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.
upper
Vérifie si une chaîne est entièrement en majuscules. Vous trouverez ci-dessous un exemple inverse du test d’expressionlower ci-dessus.