Operatoren
Operator | Präzedenz | Bemerkung | Beschreibung |
---|---|---|---|
+ | 4 | Addition für numerische Werte (integer, float, complex und char) Concatenation für string Bei Arrays und Matrizen wird die Operation elementweise ausgeführt. | |
prefix + | 1 | prefix | Kein Vorzeichenwechsel (nur numerische Werte) |
- | 4 | Subtraktion für numerische Werte (inkl. Array und Matrix) | |
prefix - | 1 | prefix | Vorzeichenwechsel für numerische Werte (inkl. Array und Matrix) |
* | 3 | Multiplikation für numerische Werte. Matrizen werden mathematisch korrekt multipliziert (ABT) | |
/ | 3 | Division für numerische Werte | |
** | 2 | Potenzieren für numerische Werte | |
% | 3 | Modulo Division (nur integer oder char) Bei Arrays und Matrizen wird die Operation elementweise ausgeführt | |
< | 6 | Kleiner als Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
> | 6 | Grösser als Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
<= | 6 | Kleiner oder gleich Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
>= | 6 | Grösser oder gleich Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
== | 7 | Gleich Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
!= | 7 | Ungleich Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
<=> | 7 | Vergleich. Ist der linke Operand kleiner als der rechte, dann ist das Resultat -1, ist er grösser, dann ist das Resultat 1 und wenn sie gleich sind, dann ist das Resultat 0. Bei Arrays und Matrizen wird der Vergleich elementweise ausgeführt | |
&& | 11 | Logisches Und | |
|| | 13 | Logisches or | |
^^ | 12 | Logisches xor | |
! | 1 | prefix | Logisches not |
& | 8 | bitwise and | |
& | 1 | prefix | Referenz, dies kann bei Funktionsargumenten verwendet werden, um z.B. Objekte nicht als Kopie zu übergeben oder Rückgabewerte zu erhalten. |
| | 10 | Bitweises or | |
^ | 6 | Bitweises xor | |
~ | 1 | prefix | Bitweises not |
in | 1 | Testet, ob ein Element in einem Array oder in einer Matrix vorhanden ist (integer, float, string) | |
>> | 5 | shift right | |
<< | 5 | shift left | |
++ | 1 | postfix | increment by 1 |
-- | 1 | postfix | decrement by 1 |
= | 15 | rechts nach links | Zuweisung eines Wertes an eine neue Variable oder einer Variable mit dem selben Typ und bei Arrays oder Matrize auch der selben Dimension. Automatische Typenkonversionen können vorgenommen werden. Bei Objektvariablen (.object und .array) sind beliebige andere Objekte zuweisbar. |
:= | 15 | rechts nach links | Zuweisung mit Überschreiben des Typs und den allfälligen Dimensionen eines Arrays oder einer Matrize. Es wird keine Typenkonversion vorgenommen. |
+= | 15 | rechts nach links | Zur Variable links addieren |
-= | 15 | rechts nach links | Von Variable links subtrahieren |
*= | 15 | rechts nach links | Variable links mit Wert rechts multiplizieren |
**= | 15 | rechts nach links | Variable links mit Wert rechts potenzieren |
/= | 15 | rechts nach links | Variable links durch Wert rechts dividieren |
%= | 15 | rechts nach links | Variable links modulo den Wertes rechts rechnen |
&= | 15 | rechts nach links | Variable links mit Wert rechts binär Und verknüpfen |
&&= | 15 | rechts nach links | Variable links mit Wert rechts logisch Und verknüpfen |
|= | 15 | rechts nach links | Variable links mit Wert rechts binär Oder verknüpfen |
||= | 15 | rechts nach links | Variable links mit Wert rechts logisch Oder verknüpfen |
^= | 15 | rechts nach links | Variable links mit Wert rechts binär Xor verknüpfen |
^^= | 15 | rechts nach links | Variable links mit Wert rechts logisch Xor verknüpfen |
.* | 3 | Array oder Matrix | Elementweise Multiplikation |
./ | 3 | Array oder Matrix | Elementweise Division |
.** | 2 | Array oder Matrix | Elementweises Potenzieren |
`(back quote) | 1 | prefix | Matrix Transposition |
expr ? expr1 : expr2 | 17 | Bedingter Ausdruck: (expr) ? (Ausdruck wenn wahr, expr1) : (Ausdruck wenn nicht wahr, expr2). In den meisten Fällen empfiehlt es sich, den gesamten Ausdruck in Klammern zu setzen, also ( expr ? expr1 : expr2 ). So wird vermieden, dass sich die Ausdrücke mit den vorhergehenden oder folgenden unkontrolliert vermischen. Achtung: Es werden immer alle drei Ausdrücke evaluiert, aber nur der resultierende Ausdruck wird für die weitere Verarbeitung verwendet. | |
.. | 18 | Bereichsoperator in case-Anweisungen, gültig für integer, float, char, datetime und string. | |
. | 1 | Zugriff auf Objekt-Element. Für Beipiele, siehe .array und .object. | |
.< | 1 | Erstellung und Zugriff eines neuen Members in einem Objekt, wird wie . verwendet. Eine Zuweisung muss mit := folgen. Für ein Beispiel, siehe .object oder .array. | |
@ | 1 | Zugriff auf Variablen-Attribut | |
@< | 1 | Erstellung und Zugriff eines neues Variablen-Attribut. Eine Zuweisung muss mit := folgen. | |
[ | 1 | Beginn eines Arrays | |
[ [ | 1 | Beginn einer Matrix | |
{ | 1 | Beginn eines JSON Objektes | |
<name> | 1 | Öffnendes XML Tag und somit auch Beginn eines ganzen XML Ausdruckes. Es können auch Attribute angegeben werden. Es muss auch ein entsprechendes End XML Tag vorhanden sein (siehe unten). | |
</name> | Schliessendes XML Tag. | ||
<name /> | 1 | Leeres XML Tag. Es können auch Attribute angegeben werden. | |
[ ] | 1 | Zugriff auf ein Array Element oder Zugriff auf ein einzelnes Zeichen in einem String oder Start und Ende einer Liste zur Definition von Arrays oder Matrizen. Gültige Elementtypen dafür sind: integer, string, float, complex, char, boolean, blob. | |
[ ][ ] | 1 | Zugriff auf ein Matrix Element oder Zugriff auf ein einzelnes Zeichen in einem string-Array | |
[ ][ ][ ] | 1 | Zugriff auf ein einzelnes Zeichen in einer string-Matrix | |
.[ ] | 1 | Zugriff auf eine Elementliste in einem Objekt. Es wird nullbasiert auf Objektvariablen mit dem gleichen Namen zugegriffen. Für Beispiele, siehe .object. | |
.{ } | 1 | Zugriff auf eine Objektvariable mit dem Namen, der als String innerhalb von { und } angegeben wird. Auch auf nummerierte Elemente in einem Array-Objekt wird damit zugegriffen. Für Beispiele, siehe .array oder .object. | |
( ) | 1 | Funktionsaufruf oder Objektaufruf (jeweis mit Argumenten möglich), oder Klammerung, um die Präzedenz von Operatoren zu umgehen. | |
\ \ | 1 | Variablenzusatz (integer oder string) Benötigt ein Leerschlag vor dem schliessenden \, falls ein Variablenname vorangeht Es wird empfohlen die äquivalente Schreibweise mit { } zu werwenden. Achtung: \ \ wird in eventuell einer späteren Version nicht mehr unterstützt, es sollte nicht mehr verwendet werden. | |
{ } | 1 | Variablenzusatz (integer oder string). Das öffnende { muss ohne Leerzeichen auf den Variablennamenteil folgen resp. auf das schliessende } muss unmittelbar der allfällige weitere Namensteil folgen. Eine solche Sequenz kann auch mehrfach eingesetzt werden. Für Beispiele, siehe .object | |
, (comma) | 19 | Listen Separator | |
: | 1) Vererbungsoperator 2) Trennzeichen zwischen Namen und Wert in JSON Objekten | ||
&{expr} | Wird nur innerhalb von XML Ausdrücken verwendet. Wird Code (expr) innerhalb dieser Zeichen angegeben, wird der enthaltene Ausdruck ausgewertet und nicht als String betrachtet. Bei Attributen von XML Tags wird ein solcher Ausdruck ebenfalls ausgewertet. Der Ausdruck innerhalb der Klammern muss den Typ string ergeben oder in einen solchen automatisch verwandelt werden können. |
Operatoren mit gleicher Präzedenz werden von links nach rechts ausgeführt.