Operatoren

vSQL unterstützt folgende Teilmenge der UL4-Operatoren:

x == y (Vergleich auf Gleichheit)

Gibt zurück ob x und y den gleichen Wert haben.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

x != y (Vergleich auf Ungleichheit)

Gibt zurück ob x und y einen unterschiedlichen Wert haben.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

x < y (Vergleich auf kleiner)

Gibt zurück ob x kleiner als y ist.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" < 42 wird beispielsweise nicht unterstützt.)

x <= y (Vergleich auf kleiner/gleich)

Gibt zurück ob x kleiner oder gleich y ist.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" <= 42 wird beispielsweise nicht unterstützt.)

x > y (Vergleich auf größer)

Gibt zurück ob x größer als y ist.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" > 42 wird beispielsweise nicht unterstützt.)

x >= y (Vergleich auf größer/gleich)

Gibt zurück ob x kleiner oder gleich y ist.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" >= 42 wird beispielsweise nicht unterstützt.)

x + y (Addition)

Addition von Zahlen, außerdem String- und Listen-Verkettung sowie Datumsarithmetik.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Beispiele:

Ausdruck

Wert

False + True

1

2 + True

3

17 + 23

40

"gurk" + "hurz"

"gurkhurz"

["gurk", "hurz"] + ["hinz", "kunz"]

["gurk", "hurz", "hinz", "kunz"]

@(2000-02-29) + days(1)

@(2000-03-01)

@(2000-02-29T12:34:56) + days(1)

@(2000-03-01T12:34:56)

@(2000-02-29T12:34:56) + minutes(1)

@(2000-02-29T12:35:56)

@(2000-02-29) + months(1)

@(2000-03-29)

@(2000-02-29T12:34:56) + months(1)

@(2000-03-29T12:34:56)

days(7) + days(7)

timedelta(14)

days(1) + hours(1)

timedelta(1, 3600)

hours(1) + minutes(30)

timedelta(0, 5400)

months(6) + months(6)

monthdelta(12)

x - y (Subtraktion)

Subtraktion von Zahlen sowie Datumsarithmetik.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Beispiele:

Ausdruck

Wert

0 - True

-1

7 - 3

4

@(2000-03-01) - @(2000-02-29)

timedelta(1)

@(2000-03-01) - days(1)

@(2000-02-29)

days(1) - hours(23)

timedelta(0, 3600)

x * y (Multiplikation)

Multiplikation von Zahlen, sowie String- und Listen-Wiederholung sowie Datumsarithmetik.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Beispiele:

Ausdruck

Wert

False * 2

0

7 * True

7

3 * 7

21

2 * "gurk"

"gurkgurk"

2 * ["gurk", "hurz"]

"["gurk", "hurz", "gurk", "hurz"]

False * "hurz"

""

days(7) * 2

timedelta(14)

hours(6) * 4

timedelta(1)

monthdelta(6) * 2

monthdelta(12)

x / y (Division)

Divison von Zahlen sowie Datumsarithmetik.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Beispiele:

Ausdruck

Wert

Bemerkung

4 / True

4.0

False / 2

0.0

7 / 2

3.5

7 / 0

None

Fehler

days(1) / 24

timedelta(0, 3600)

seconds(2) / True

timedelta(0, 2)

x // y (Ganzzahl-Division)

Division von Zahlen mit Rundung auf ganze Zahlen.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Beispiele:

Ausdruck

Wert

Bemerkung

4 // True

4

False // 2

0

7 // 2

3

7 // 0

None

Fehler

days(7) // 3

timedelta(2)

monthdelta(12) // 3

monthdelta(4)

x % y (Modulo-Operator)

Modulo-Operator bzw. Farbmischung.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

Beispiele:

Ausdruck

Wert

13 % 10

3

True % 2

1

6.5 % 2.5

1.5

#fff % #000

#fff

#fff8 % #000

#888

#f00a % #0f0

#a50

x and y (Boolsche „Und“-Verknüpfung)

Das Ergebnis ist y wenn bool(x) True ist, ansonsten x.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" and 42 wird beispielsweise nicht unterstützt.)

Siehe auch

bool().

x or y (Boolsche „Oder“-Verknüpfung)

Das Ergebnis ist y wenn bool(x) False ist, ansonsten x.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" or 42 wird beispielsweise nicht unterstützt.)

Siehe auch

bool().

x in y (Enthalten-Test)

Testet ob x in y enthalten ist.

Beispiele:

Ausdruck

Wert

"u" in "gurk"

True

"ur" in "gurk"

True

"hu" in "gurk"

False

"u" in ["gurk", "hurz", "hinz", "kunz"]

False

"hinz" in ["gurk", "hurz", "hinz", "kunz"]

True

x not in y (Nicht-Enthalten-Test)

Testet ob x nicht in y enthalten ist.

Beispiele:

Ausdruck

Wert

"u" not in "gurk"

False

"ur" not in "gurk"

False

"hu" not in "gurk"

True

"u" not in ["gurk", "hurz", "hinz", "kunz"]

True

"hinz" not in ["gurk", "hurz", "hinz", "kunz"]

False

x is y (Identitäts-Test)

Der Wert ist derselbe wie bei x == y, jedoch muß x oder y ein literales None sein.

x is not y (Negativer Identitäts-Test)

Der Wert ist derselbe wie bei x != y, jedoch muß x oder y ein literales None sein.

x[index] (Index-Zugriff)

Holt das index-te Zeichen aus dem String x oder den index-ten Eintrag aus der Liste x. Negative Werte für index werden als relativ zum Ende des Strings bzw. der Liste interpretiert.

Beispiele:

Ausdruck

Wert

"gurk"[0]

"g"

"gurk"[2]

"r"

"gurk"[5]

None

"gurk"[-1]

"k"

"gurk"[-3]

"u"

"gurk"[-5]

None

["gurk", "hurz", "hinz", "kunz"][0]

"gurk"

["gurk", "hurz", "hinz", "kunz"][-2]

"hinz"

x[start:stop] (Slice-Zugriff)

Gibt einen Unterstring des Strings x von Index start bis Index stop zurück, bzw. gibt eine Unterliste der Liste x von Index start bis Index stop zurück. Das Zeichen/der Eintrag an Index start ist dabei Bestandteil des Ergebnisses, das Zeichen/der Eintrag an Index stop nicht. Negative Werte für start und stop werden als dabei als relativ zum Ende des Strings bzw. der Liste interpretiert. Wird start weggelassen, beginnt der Abschnitt am Anfang, wird stop weggelassen, endet der Abschnitt am Ende.

Beispiele:

Ausdruck

Wert

"gurk"[1:3]

"ur"

"gurk"[-3:3]

"ur"

"gurk"[:2]

"gu"

"gurk"[-2:]

"rk"

"gurk"[3:1]

""

"gurk"[10:]

""

"gurk"[:-10]

""

not x (Boolsche Negation)

Gibt False zurück wenn bool(x) True ist, ansonsten True.

Beispiele:

Ausdruck

Wert

not None

True

not False

True

not True

False

not 0

True

not 42

False

not ""

True

not "gurk"

False

not "0"

False

not days(0)

True

not days(7)

False

not months(0)

True

not months(12)

False

not [1, 2, 3]

False

Siehe auch

bool().

-x (Unäres Minus)

Kehrt das Vorzeichen der Zahl (oder des Zeitraums) x um.

BOOL-Werte werden dabei wie die entsprechenden Ganzzahl-Werte 0 und 1 behandelt.

x if cond else y (Wenn/Dann-Ausdruck)

Gibt x zurück wenn bool(cond) True ist, ansonsten y.

Dabei müssen die Datentypen von x und y kompatibel sein. ("gurk" if True else 42 wird beispielsweise nicht unterstützt.)

Siehe auch

bool().

x.attrname (Attribut-Zugriff)

Die Attribute der jeweiligen Datentypen werden in Datentypen, Attribute und Methoden beschrieben.

funktion(...) (Funktionsaufruf)

Die zur Verfügung stehenden Funktionen werden in Funktionen beschrieben.

x.methode(...) (Methodenaufruf)

Die methoden der jeweiligen Datentypen werden in Datentypen, Attribute und Methoden beschrieben.