Die folgende Tabelle zeigt Operatoren und ihre Prioritäten:
Operatoren | ||
---|---|---|
Prio | Operator | Beschreibung |
1 | Potenzierung: ab | |
2 | Multiplikation | |
Division | ||
Modulo (Rest bei der Ganzzahldivision von a/b) | ||
3 | Addition | |
Subtraktion | ||
4 | left-shift: a wird um b Bits nach links verschoben. | |
right-shift: a wird um b Bits nach rechts verschoben. | ||
5 | a und b in Listen wandeln und beide Listen verketten. | |
6 | Ergebnis ist '1', falls a kleiner b; sonst '0' | |
Ergebnis ist '1', falls a kleiner oder gleich b; sonst '0' | ||
Ergebnis ist '1', falls a größer b; sonst '0' | ||
Ergebnis ist '1', falls a größer oder gleich b; sonst '0' | ||
7 | Ergebnis ist '1', falls a gleich b; sonst '0' | |
Ergebnis ist '1', falls a Typ und Wert gleich b; sonst '0' | ||
Ergebnis ist '1', falls a ungleich b; sonst '0' | ||
Ergebnis ist '1', falls a Typ oder Wert ungleich b; sonst '0' | ||
8 | Bitweise UND-Verknüpfung aller Bits | |
9 | Bitweise EXKLUSIV-ODER-Verknüpfung aller Bits | |
10 | Bitweise ODER-Verknüpfung aller Bits | |
11 | Logische UND-Verknüpfung: Ergebnis ist '1', falls a UND b WAHR; sonst '0' | |
12 | Logische EXKLUSIV-ODER-Verknüpfung: Ergebnis ist '1', falls genau eines von a und b WAHR; sonst '0' |
|
13 | Logische ODER-Verknüpfung: Ergebnis ist '1', falls a ODER b WAHR; sonst '0' |
|
14 | Falls a WAHR, dann b, sonst c | |
15 | Zuweisung des Wertes a an Variable VAR, Ergebnis ist ebenfalls a | |
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
Entspricht |
||
VAR in eine Liste wandeln und a als Einzelelement anhängen. |
Im Gegensatz zu C/C++ wird hier das Ausrufezeichen zum Einleiten eines Kommentares verwendet.
Ein Ausdruck ist eine Liste von einem oder mehreren Operanden.
Diese Operanden sind jeweils durch einen der in der obigen Tabelle genannten
Operatoren voneinander getrennt.
Die Operatoren, die in der Tabelle innerhalb eines Bereiches mit gleicher
Hintergrundfarbe stehen, haben die gleiche Priorität.
Operatoren, die in einem Bereich weiter oben stehen haben gegenüber weiter
unten genannten eine höhere Priorität.
So haben z.B.
Beispiele:
' a*b + c*d ' | ist das gleiche wie '(a*b) + (c*d)' |
' a+b * c+d ' | ist das gleiche wie 'a + (b*c) + d' |
' a * b / c ' | ist das gleiche wie '(a*b)/c' |
Zuweisungen haben nach links die höchste Priorität
und nach rechts die niedrigste Priotität.
So wird z.B. bei
Die Operatoren
Operatoren nach Priorität:
Artihmetik | |
---|---|
Operatoren | Kurzinfo |
Division zweier Zahlenwerte zur Berechnung des Restwertes (auch Modulo genannt). (auch rekursiv in Listen und Maps). | |
— | |
Multiplikation zweier Zahlenwerte (auch rekursiv in Listen und Maps). | |
Potenzierung zweier Fließkommazahlen. | |
— | |
Addition zweier Zahlenwerte oder Zusammnefügen zweier Zeichenketten (auch rekursiv in Listen und Maps). | |
— | |
Subtraktion zweier Zahlenwerte (auch rekursiv in Listen und Maps). | |
— | |
Division zweier Zahlenwerte (auch rekursiv in Listen und Maps). | |
— | |
Bedingte Ausführung | |
Operatoren | Kurzinfo |
— | |
— | |
— | |
Bitweise Verknüpfung | |
Operatoren | Kurzinfo |
Die Bitfeld-Berechnung |
|
— | |
Die Bitfeld-Berechnung |
|
— | |
Die Bitfeld-Berechnung |
|
— | |
Die Bitfeld-Berechnung |
|
Bitweise Verschiebung | |
Operatoren | Kurzinfo |
— | |
— | |
— | |
— | |
Logische Verknüpfung | |
Operatoren | Kurzinfo |
— | |
— | |
— | |
— | |
Vergleich | |
Operatoren | Kurzinfo |
Haben zwei Objekte einen unterschiedlichen Wert? | |
Sind zwei Objekte unterschiedlich in Typ oder Wert? | |
Sind zwei Objekte unterschiedlich in Typ oder Wert? | |
Relativer Vergleicher zweier Operanden auf 'kleiner' | |
Relativer Vergleicher zweier Operanden auf 'kleiner gleich' | |
Haben zwei Objekte einen unterschiedlichen Wert? | |
Haben zwei Objekte den identischen Wert? | |
Sind zwei Objekte identisch in Typ und Wert? | |
Relativer Vergleicher zweier Operanden auf 'größer' | |
Relativer Vergleicher zweier Operanden auf 'größer gleich' | |
Verketten | |
Operatoren | Kurzinfo |
Beide Operanden in eine Liste wandeln und beide Listen verketten. | |
Das Objekt und Operanden in eine Liste wandeln und beide Listen verketten. | |
Addition zweier Zahlenwerte oder Zusammnefügen zweier Zeichenketten (auch rekursiv in Listen und Maps). | |
Zuweisung | |
Operatoren | Kurzinfo |
— | |
— | |
— | |
— | |
— | |
— | |
— | |
— | |
— | |
— | |
— | |
— |
Syntax aller Operatoren | |
---|---|
Ergebnistyp | Operator & Parameter |
bool: x != y | |
bool: x !== y | |
bool: x /== y | |
bool: x < y | |
bool: x <= y | |
bool: x <> y | |
bool: x == y | |
bool: x === y | |
bool: x > y | |
bool: x >= y | |
float := base ** exponent | |
varname ##= expression | |
varname #= expression |