Operatoren und Ausdrucktests
Mathematische Standardoperatoren können zur Berechnung von Werten im Kontext einer Vorlage verwendet werden.
Symbol | Beschreibung |
---|---|
+ | Fügt zwei Objekte zusammen. Sie verwenden dies im Allgemeinen für die Addition von Zahlen. Wenn Sie versuchen, Listenzeichenfolgen zu verketten, sollten Sie stattdessen ~ 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. Beispiel: {{ 20 // 7 }} ist 2 |
* | Multipliziert Zahlen. |
** | Nimmt den linken Operanden hoch dem rechten Operanden. |
Vergleichsoperatoren können verwendet werden, um Werte für Vorlagenlogik auszuwerten. Einige Beispiele für die Verwendung von Vergleichsoperatoren in if-Anweisungen finden Sie hier.
Symbol | Kurzschreibweise | Beschreibung |
---|---|---|
== | eq | Gleich. Wird als true ausgewertet, wenn zwei Objekte gleich sind. |
!= | ne | Ungleich. Wird als true ausgewertet, wenn zwei Objekte nicht gleich sind. |
> | gt | Größer als. Wird als true ausgewertet, wenn die linke Seite größer als die rechte Seite ist. |
>= | gte | Größer als oder gleich. Wird als true ausgewertet, wenn die linke Seite größer oder gleich der rechten Seite ist. |
< | lt | Kleiner als. Wird als true ausgewertet, wenn die linke Seite niedriger als die rechte Seite ist. |
<= | lte | Kleiner als oder gleich. Wird als true ausgewertet, wenn die linke Seite kleiner oder gleich der rechten Seite ist. |
Die Kurzschreibweise der Vergleichsoperatoren kann in Filtern verwendet werden, bei denen ein Ausdruck getestet wird, z. B. |selectattr()
.
Mit logischen Operatoren können Sie mehrere Ausdrücke in einer einzigen Anweisung kombinieren.
Symbol | Beschreibung |
---|---|
and | Gibt true zurück, wenn der linke und der rechte Operand true sind. |
or | Gibt true zurück, wenn der linke oder der rechte Operand true ist. |
not | Negiert eine Aussage und wird in Verbindung mit is verwendet. Siehe folgende Beispiele. |
(expr) | Gruppieren Sie einen Ausdruck für die Reihenfolge der Operationen. Zum Beispiel: (10 - 2) * Variable. |
?: | Der ternäre Operator akzeptiert 3 Argumente (Ausdruck, „true“-Bedingung, „false“-Bedingung). Wertet einen Ausdruck aus und gibt die entsprechende Bedingung zurück. |
Nachfolgend sind weitere wichtige HubL-Operatoren aufgeführt, die zur Durchführung verschiedener Aufgaben verwendet werden können.
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. |
Ausdruckstests sind verschiedene boolesche Bedingungen, die mithilfe von logischen Operatoren ausgewertet werden können.
Mit dem containingall
-Ausdruckstest wird überprüft, ob eine Listenvariable alle Werte einer anderen Liste enthält.
Mit dem defined-Ausdruckstest wird überprüft, ob eine Variable im Kontext der Vorlage definiert ist. Sie können diesen Ausdruckstest zwar verwenden, aber beim Schreiben einer if-Anweisung ohne Operatoren wird standardmäßig geprüft, ob die Variable definiert ist.
In dem folgenden Beispiel wird der color-Parameter eines Farbmoduls getestet. Hätte der color-Parameter keinen Wert, würde die Vorlage standardmäßig eine schwarze Hintergrundfarbe darstellen. Wenn er angegeben ist, wird die vom Benutzer festgelegte Hintergrundfarbe dargestellt.
Mit dem divisibleby-Ausdruckstest kann getestet werden, ob ein Objekt durch eine andere Zahl teilbar ist.
Im Folgenden wird zum Beispiel eine for-Schleife erstellt, die eine Liste von Tierarten durchläuft. Jede Tierart wird in einem div gedruckt, und jedes 5. div hat ein anderes Inline-Styling (Breite:100 %). Dieses Konzept könnte auf einen Blog angewendet werden, in dem für ein bestimmtes Muster von Beiträgen ein anderes Markup gerendert wird. Weitere Informationen zu for-Schleifen und loop.index finden Sie in diesem Artikel.
Mit dem equalto-Ausdruckstest wird überprüft, ob der Wert einer Variablen gleich einer Konstanten oder einer anderen Variablen ist. Sie können auch den Operator == verwenden, um denselben Test durchzuführen.
Im folgenden Beispiel wird die Breite der Blog-Beiträ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.
Mit dem even-Ausdruckstest wird überprüft, ob eine numerische Variable eine gerade Zahl ist.
Das folgende Beispiel zeigt eine vereinfachte Blog-Listing-Schleife. Wenn die aktuelle Iteration der Schleife gerade ist, wird dem post item-div die even-post-Klasse zugewiesen. Andernfalls wird die odd-post-Klasse zugewiesen.
Überprüft, ob eine Variable iterierbar ist und in einer Schleife durchlaufen werden kann.
In diesem Beispiel wird eine Variable namens „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 für for-Schleifen.
Der Test lower-Ausdruck wird als true ausgewertet, wenn eine Zeichenkette klein geschrieben ist.
Im folgenden Beispiel wird mithilfe einer unless-Anweisung und eines lower-Filter sichergestellt, dass eine in einen Textbaustein eingegebene Textzeichenfolge immer klein geschrieben wird.
Mit dem mapping-Ausdruckstest wird überprüft, ob ein Objekt ein Dictionary (Wörterbuch) ist.
Im folgenden Beispiel wird überprüft, ob das Kontaktobjekt ein Dictionary ist, was hier auch der Fall ist.
Mit dem none-Ausdruckstest wird überprüft, ob eine Variable einen Nullwert hat.
Mit dem number-Ausdruckstest wird überprüft, ob der Wert einer Variablen eine Zahl ist.
Im folgenden Beispiel wird überprüft, ob es sich bei einer Variablen um eine Variable handelt, und wenn ja, wird sie in Millionen umgewandelt.
Mit dem odd-Ausdruckstest wird überprüft, ob eine numerische Variable eine ungerade Zahl ist.
Im Folgenden wird dasselbe Beispiel wie der zuvor beschriebene inverse-even-Ausdruckstest verwendet.
Mit dem sameas-Ausdruckstest wird überprüft, ob zwei Variablen den gleichen Wert haben.
Im folgenden Beispiel werden zwei Variablen festgelegt und dann wird überprüft, ob sie gleich sind.
Der sequence-Ausdruckstest ähnelt dem iterable-Ausdruckstest darin, dass überprüft wird, ob eine Variable eine Sequenz ist.
Im folgenden Beispiel wird überprüft, ob eine Variable eine Sequenz ist, und dann wird diese Sequenz von Musikgenres durchlaufen.
Mit dem string-Ausdruckstest wird überprüft, ob der in einer Variablen gespeicherte Wert ein Text ist.
Im folgenden Beispiel wird überprüft, ob eine Variable eine Zeichenkette ist, und wenn ja, wird ein title-Filter angewendet, um die Großschreibung zu ändern.
Mit diesem Ausdruckstest wird überprüft, ob eine Zeichenkette mit einer bestimmten Zeichenkette beginnt. Er wird in Verbindung mit dem Operator „is“ verwendet.
Mit dem truthy-Ausdruckstest wird überprüft, ob ein Ausdruck als true ausgewertet wird.
Im folgenden Beispiel wird ein boolesches Kontrollkästchenmodul verwendet, um eine Warnmeldung anzuzeigen.
Mit dem undefined-Ausdruckstest wird überprüft, ob eine Variable im Kontext der Vorlage undefiniert ist. Dieser Test unterscheidet sich von none 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.
Der upper-Ausdruckstest wird als true ausgewertet, wenn eine Zeichenkette durchgehend in Großbuchstaben geschrieben ist. Nachfolgend finden Sie ein umgekehrtes Beispiel für den obigen Test des lower-Ausdrucks.
Vielen Dank, dass Sie Ihr Feedback mit uns geteilt haben.