Zum Hauptinhalt springen

Operatoren

Höchste Rangfolge zuerst. Jeder binäre Operator ist linksassoziativ: a - b - c ist (a - b) - c.

StufeOperatorenBedeutungOperandentypen
1( ) f(…)Gruppierung, Aufruf einer integrierten Funktion
2! - ~ (unär)logisches Nicht, Negation, bitweises Nicht!: beliebig · -: Integer/Real · ~: Integer
3* /Multiplikation, DivisionInteger/Real
4+ -Addition oder Verkettung, SubtraktionInteger/Real oder Text + Text
5<< >>Linksverschiebung, arithmetische RechtsverschiebungInteger
6< <= > >=Ordnungzwei Zahlen oder zwei Texte
7== !=Gleichheitbeliebig
8&bitweises UNDInteger
9^bitweises exklusives ODERInteger
10|bitweises ODERInteger
11&&logisches UND (beide Seiten werden immer ausgewertet)beliebig (Wahrheitswert)
12||logisches ODER (beide Seiten werden immer ausgewertet)beliebig (Wahrheitswert)

Es gibt keinen Modulo- (%), Potenz-, ternären (?:) oder Kommaoperator.

warnung

&& und || werten nicht verkürzt aus. Beide Operanden werden immer ausgewertet, erst links, dann rechts. Ein Aufruf einer integrierten Funktion auf der rechten Seite wird auch dann ausgeführt, wenn die linke Seite das Ergebnis bereits entschieden hat, und schlägt dieser Aufruf fehl, endet die Aktion. Sichern Sie stattdessen mit einem verschachtelten if ab:

text = ClipboardGetText();
idx = StringGetIndexOf(text, ":");

// FALSCH: Wenn idx -1 ist, läuft StringGetSubstring(text, -1, 5) trotzdem und beendet die Aktion
// if (idx >= 0 && StringGetSubstring(text, idx, 5) == ":here") { ... }

// RICHTIG: Die zweite Prüfung läuft nur, wenn die erste zutrifft
if (idx >= 0) {
if (StringGetSubstring(text, idx, 5) == ":here") UtilityPrint("found");
}
warnung

Bitweise Operatoren binden schwächer als Vergleiche (wie in C). flags & 4 == 4 wird als flags & (4 == 4) gelesen, also flags & true, also 0. Klammern Sie die Maske immer: (flags & 4) == 4 oder (flags & 4) != 0.

warnung

Vergleiche lassen sich nicht verketten. 0 < x < 10 wird als (0 < x) < 10 gelesen, was einen Bool mit einem Integer vergleicht und immer false ist. Schreiben Sie x > 0 && x < 10.