Ausdrücke wie "länge-1" oder "(radius+5)*2" sind ein zentrales
Element in Vips. Sie kommen fast überall vor, wo ein Wert eingegeben
werden muss, beispielsweise bei der Zuweisung,
der While-Schleife oder bei einem Aufruf
in den Argumenten.
Jeder Ausdruck hat einen Wert und einen Typ. Wird ein Ausdruck verwendet, muss zunächst
geprüft werden, ob sein Typ in Ordnung ist. Der Anfangswert eine Zählschleife
ist beispielsweise auch ein Ausdruck. Dieser muss vom Typ Ganzzahl sein. Stimmt der Typ,
so wird der Wert zur Laufzeit bestimmt (Ausdrücke werden immer erst zur Laufzeit ausgewertet,
da sie Variablen enthalten können, deren Wert zur Entwicklungszeit noch nicht feststeht).
Der Typ des Ausdrucks muss aber nicht immer 100%-ig mit dem geforderten Typ übereinstimmen.
Soll z.B. einer Variable vom Typ Kommazahl mit der Zuweisungs-Anweisung
der Wert "-34" zugewiesen werden, der den Typ Ganzzahl hat, so ist dies kein Problem, die
"-34" wird einfach zu "-34.0" erweitert. Umgekehrt funktioniert es genauso, in diesem Fall
werden die Nachkommastellen abgeschnitten ("12.83" würde zu "12" werden). Ähnliches
passiert, wenn einer Variable vom Typ Zeichenkette ein einzelnes Zeichen zugewiesen
werden soll. Das Programm passt den Typ dann automatisch an. Man sagt: Zwei Typen
sind zuweisungskompatibel.
Typ der Variable | Mögliche Wert-Typen |
---|---|
Ganzzahl | Ganzzahl Kommazahl Zeichen |
Kommazahl | Kommazahl Ganzzahl |
Zeichen | Zeichen |
Zeichenkette | Zeichenkette Zeichen |
Wahrheitswert | Wahrheitswert |
Ganzzahl |
Eine Ganzzahl ist eine 32-bittige natürliche Zahl mit Vorzeichen, z.B. "23" oder "-4423". (entspricht Datentyp int in Java)
|
Kommazahl |
Die Kommazahl stellt eine rationale Zahl dar (entspricht Datentyp double in Java).
Exponentialschreibweise wird unterstützt, d.h. "23e-5" oder "-0.233e2" sind gültige
Kommazahlen. Als Dezimaltrenner (Komma) muss ein Punkt verwendet werden.
|
Zeichen |
Ein Zeichen stellt einen einzelnen Buchstaben, z.B. 'A' oder ' ' dar
(entspricht char in Java).In einem Ausdruck muss das Zeichen in einfache Anführungszeichen gesetzt werden. |
Zeichenkette |
Eine Zeichenkette ist ein Text (Datentyp String in Java). Eine Zeichenkette muss
in einem Ausdruck in doppelte Anführungszeichen gesetzt werden ("blabla").Um in einer Zeichenkette Sonderzeichen wie einen Zeilenumbruch darzustellen, können Escape-Sequenzen verwendet werden. Escape-Sequenzen bestehen aus einem Backslash ('\') und einem nachfolgenden Zeichen. Dieses Zeichen gibt die Art der Escape-Sequenz an. Beispiel: "Hallo\nWelt" ergibt die Wörter "Hallo" und "Welt" in zwei Zeilen. Unterstützte Escape-Zeichen sind:
|
Wahrheitswert |
Ein Wahrzeitswert kann die Werte true für Wahr und false
für Falsch annehmen (Datentyp boolean in Java).
|
Priorität (1 = höchste) |
Operator | Operanden | Typ | Beschreibung |
---|---|---|---|---|
1 | +, - | Zahl | Zahl | Unäres Plus und Minus |
1 | not | Wahrheitswert | Wahrheitswert | Logisches Komplement |
2 | *, / | Zahl, Zahl | Zahl | Multiplikation und Division |
2 | div | Ganzzahl, Ganzzahl | Ganzzahl | Ganzzahlige Division |
2 | mod | Ganzzahl, Ganzzahl | Ganzzahl | Divisionsrest (Modulo) |
3 | +, - | Zahl, Zahl | Zahl | Addition und Subtraktion |
3 | + | Zeichenkette, Zeichenkette oder Zeichen | Zeichenkette | Zeichenkettenverknüpfung |
4 | <, >, <=, >= | Zahl oder Zeichenkette, Zahl oder Zeichenkette | Wahrheitswert | Vergleichsoperatoren |
5 | =, <> | Alle Datentypen | Wahrheitswert | Test auf Gleichheit/Ungleichheit |
6 | xor | Wahrheitswert, Wahrheitswert | Wahrheitswert | Logisches Exklusives Oder |
7 | and | Wahrheitswert, Wahrheitswert | Wahrheitswert | Logisches Und |
8 | or | Wahrheitswert, Wahrheitswert | Wahrheitswert | Logisches Oder |