Lade...
 

Konvertierung bei arithmetischen Operationen

'Konvertierung bei arithmetischen Operationen'

Operand a Operand b Ergebnis Typ Ergebnis
Integer Integer Integer a ∘ b
Integer String Integer a ∘ atoi(b)
Integer Object Object CX_INTEGER(a) ∘ b
Object Object Object a ∘ b
Object Integer Object a ∘ CX_INTEGER(b)
Object String Object a ∘ Object(b)
String String String a + b
String Integer String a + itoa(b)
String String Integer

a ≟ b

String multiple String String

a + b〈i〉

String multiple String Integer

a ≟ b〈i〉

multiple String String String

a + ml(b)

multiple String String Integer a〈i〉 ≟ b
multiple String multiple String multiple String a + b
multiple String multiple String Integer  ∀i: a〈i〉 = b〈i〉
multiple String multiple String Integer

 a〈i〉 ≟ b〈i〉

Collection Collection Collection a+b, a-b
Collection Object Collection a+b, a-b

Bemerkungen:

  • ∘ steht für eine der Operationen +, -, /, =, < und >
  • ≟ steht für die Vergleichsoperationen =, < und >
  • atoi(x) bedeutet String x konvertiert in einen Integer-Wert
  • itoa(x) bedeutet Integer x konvertiert in einen String
  • x〈i〉 ist der entsprechend der aktuellen Sprache l ausgewählte String
  • Operation + auf Strings und multiple Strings angewendet bedeutet Verkettung
  • ml(x) bedeutet den Export von x in so vielen Sprachen, wie der andere ML_STRING Operand enthält.

Die Verkettung zweier multipler Strings (x + y) bezieht sich auf alle Komponenten, während bei (x ≟ y) nur die durch die aktuelle Sprache bestimmten Komponenten verglichen werden.

Wenn  +, -, * oder / auf Objekte angewendet werden, so definiert das Objekt die Bedeutung der Operation. InstantView® ruft die virtual function Add, Subtract, Multiply oder Divide auf (für den ersten Operand - Operand 2 wird als Parameter übergeben). Werden Objekte mit =, < oder > verglichen, so ruft InstantView® die virtual function Compare auf. Diese Funktionen sind auch dafür zuständig, eine Fehlermeldung zu generieren, falls Objekte addiert, multipliziert, miteinander verglichen etc. werden, für die es keine sinnvolle Interpretation einer derartigen Operation gibt.

Auf Collections können + und - angewendet werden: Die Vereinigungsmenge a+b enthält alle Elemente aus a und b, die Differenzmenge a-b enthält alle Elemente aus a, die nicht in b vorkommen. Dies gilt sinngemäß auch, wenn b ein Objekt ist (= eine fiktive Menge mit nur einem Element).

CX_TRANSACTION und CX_COMPOUND_TXN können miteinander verknüpft werden. Das Verhalten ist bei den beiden Klassen beschrieben.