Um die Logik und Funktionalität Ihrer Vorlagen zu erweitern, unterstützt HubL mehrere wichtige Operatoren und Ausdruckstests. Operatoren ermöglichen es Ihnen, mathematische Funktionen auszuführen, Vergleiche durchzuführen, die Logik von Vorlagen komplexer zu machen und die Darstellung durch Markup zu ändern. Darüber hinaus enthält dieser Artikel eine umfassende Liste von Ausdruckstests, die in HubL verwendet werden können.
Symbol | Beschreibung |
---|---|
+ | Fügt zwei Objekte zusammen, in der Regel Zahlenwerte. Um Zeichenfolgen oder Listen zu verketten, sollten Sie stattdessen den ~ -Operator verwenden. |
- | Subtrahiert eine Zahl von einer anderen. |
/ | Dividiert Zahlen. |
% | Gibt den Rest aus der Division von Zahlen zurück. |
// | Teilt zwei Zahlen und gibt das gerundete ganzzahlige Ergebnis zurück. {{ 20 // 7 }} ergibt zum Beispiel 2 . |
* | Multipliziert Zahlen. |
** | Nimmt den linken Operanden hoch dem rechten Operanden. |
Symbol | Kurzschreibweise | Beschreibung |
---|---|---|
== | ==eq | Gleich. Wird als true ausgewertet, wenn die beiden Objekte gleiche Werte haben. |
!= | ne | Ungleich. Wird als true ausgewertet, wenn die beiden Objekte nicht gleich sind. |
> | gt | Größer als. Wird als true ausgewertet, wenn der Wert des linken Operanden größer als der rechte Operand ist. |
>= | gte | Größer als oder gleich. Wird als true ausgewertet, wenn der linke Operand größer oder gleich dem rechten Operanden ist. |
< | lt | Kleiner als. Wird als true ausgewertet, wenn der linke Operand kleiner als der rechte Operand ist. |
<= | lte | Kleiner als oder gleich. Wird als true ausgewertet, wenn der linke Operand kleiner oder gleich dem rechten Operanden ist. |
|selectattr()
.Symbol | Beschreibung |
---|---|
and | Gibt true zurück, wenn sowohl der linke als auch der rechte Operand truthy sind. Andernfalls wird false zurückgegeben. Dieser Operator verhält sich nicht wie der and -Operator in Python oder der && -Operator in JavaScript. Im Folgenden erfahren Sie mehr über die Verwendung von and -Operatoren. |
or | Gibt den ersten Operanden zurück, wenn er truthy ist. Andernfalls wird der zweite Operand zurückgegeben. Dieser Operator ist äquivalent zu or in Python und|| JavaScript. Im Folgenden erfahren Sie mehr über die Verwendung von or -Operatoren. |
is | Verbindet zwei Operanden für eine positive Anweisung. |
not | Negiert eine Anweisung in Verbindung mit is . |
(expr) | Gruppieren Sie einen Ausdruck für die Reihenfolge der Operationen. Zum Beispiel: (10 - 2) * variable . |
? | Der ternäre Operator kann verwendet werden, um schnell bedingte Logik zu schreiben. Akzeptiert drei Argumente (Ausdruck, „true“-Bedingung, „false“-Bedingung). Wertet einen Ausdruck aus und gibt die entsprechende Bedingung zurück. |
or
-Operator wie der or
-Operator in Python und der ||
-Operator in JavaScript. Der erste Operand wird zurückgegeben, wenn der Ausdruck als true ausgewertet wird, andernfalls wird der zweite Operand zurückgegeben. Ein häufiger Anwendungsfall für diesen or
Operator ist das Festlegen eines Fallback-Werts, wenn kein Variablenwert definiert ist.
and
-Operator verhält sich jedoch anders als der and
-Operator in Python und der &&
-Operator in JavaScript. In HubL gibt and
immer einen booleschen Wert zurück: Wenn der Ausdruck als true ausgewertet wird, wird true
zurückgegeben, andernfalls wird false
zurückgegeben. Die Python- und JavaScript-Operatoren hingegen geben einen Operandenwert zurück, der darauf basiert, ob die Anweisung als true oder false ausgewertet wird.
[]
) und leere Dicts ({}
) als falsch betrachtet. Dies entspricht dem Verhalten in Python, unterscheidet sich jedoch von JavaScript, wo []
und {}
truthy sind.
Symbol | Beschreibung |
---|---|
in | Überprüft, ob ein Wert in einer Sequenz enthalten ist. |
is | Führt einen Ausdruckstest durch. |
| | Wendet einen Filter an. |
~ | Verkettet Werte. |
==
verwenden, um denselben Test durchzuführen.
Im folgenden Beispiel wird die Breite der Blogbeiträge auf der Grundlage der Gesamtzahl der Beiträge in der Schleife angepasst. In der Beispielausgabe wird davon ausgegangen, dass der Blog 4 Beiträge enthält.
even-post
-Klasse zugewiesen. Andernfalls wird die odd-post
-Klasse zugewiesen.
jobs
daraufhin überprüft, ob sie durchlaufen werden kann. Da die Variable eine Liste von Jobs enthält, würde die if-Anweisung als true
ausgewertet werden, und die Schleife würde ausgeführt werden. Hätte die Variable einen einzelnen Wert enthalten, würde die if-Anweisung diesen Wert stattdessen mit anderem Markup ausgeben. Erfahren Sie mehr über for-Schleifen.
null
-Wert enthält.
is
verwendet.
is
verwendet.
True
ausgewertet wird.
Im folgenden Beispiel wird ein boolesches Kontrollkästchenmodul verwendet, um eine Warnmeldung anzuzeigen.
none
-Ausdruckstest dadurch, dass undefined true
ist, wenn die Variable vorhanden ist, aber keinen Wert hat; none hingegen ist true
, wenn die Variable einen Nullwert hat.
Im folgenden Beispiel wird eine Vorlage auf das Vorhandensein der Variablen “my_var” überprüft.
lower
-Ausdrucks.