Variablen und Operatoren in XLANG-s
In diesem Abschnitt werden die in der Sprache XLANG/s verwendeten Variablen und Operatoren erläutert.
Variablen in XLANG/s
Variablen stellen Speicherorte dar. Jede Variable hat einen zugehörigen Datentyp, der die Werte bestimmt, die in der Variable gespeichert werden können. XLANG/s ist typsicher. Über den XLAMG/s-Compiler wird sichergestellt, dass die in Variablen gespeicherten Werte immer vom passenden Typ sind. In XLANG/s werden die folgenden Variablentypen unterstützt:
Nachrichten
Korrelationssätze
Dienstverknüpfungen
Ports
Unterschiedene integrierte Werttypen: Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64, SByte, Single, String, UInt16, UInt32 und UInt64
Objekte
Enumerationstypen
In XLANG/s wird eine Initialisierungssemantik für jeden der oben aufgeführten Datentypen bereitgestellt. Eine solche Initialisierung kann als Zuweisung zu einer Variable dieses Typs bezeichnet werden. In XLANG/s muss eine Variable definitiv zugewiesen werden, bevor ihr Wert abgerufen oder verwendet werden kann.
XLANG/s-Operatoren
In XLANG/s werden die folgenden Operatoren unterstützt: Diese Operatoren sind in ihrer Funktionalität eng an den entsprechenden Operatoren in C# ausgerichtet.
Operator | BESCHREIBUNG | Beispiel |
---|---|---|
checked | Löst einen Fehler bei arithmetischem Überlauf aus. | checked(x = y * 1000) |
unchecked | Ignoriert arithmetischen Überlauf. | unchecked(x = y * 1000) |
neu | Erstellt eine Instanz von einer Klasse. | myObject = new MyClass; |
typeof | Ruft einen Datentyp ab. | myMapType = typeof(myMap) |
succeeded | Prüft den erfolgreichen Abschluss eines Transaktionsbereichs oder einer Orchestrierung. | succeeded(<Transaktions-ID für untergeordnete Transaktionen des aktuellen Bereichs oder Diensts>) |
exists | Prüft das Vorhandensein einer Nachrichtenkontexteigenschaft. | BTS.RetryCount exists Message_In |
+ | Unäres Plus | +(int x) |
- | Unäres Minus | -(int x) |
! | Logische Negation | !myBool |
~ | Bitweise Ergänzung | x = ~y |
() | Typumwandlung | (bool) myInt |
* | Uhrzeiten | Weight = MyMsg.numOrders * 20 |
/ | Geteilt durch | x / y |
+ | Plus | x + y |
- | Subtraktion | x - y |
<< | Linksverschiebung | x << 2 |
>> | Rechtsverschiebung | x >> 2 |
< | Kleiner als | If (MyMsg.numOrders < 10)... |
> | Größer als | If (MyMsg.numOrders > 10)... |
<= | Kleiner als oder gleich | If (MyMsg.numOrders <= 10)... |
>= | Größer als oder gleich | If (MyMsg.numOrders >= 10)... |
== | Gleich | If (MyMsg.numOrders == 10)... |
!= | Ungleich | If (MyMsg.numOrders != 10)... |
Weitere Informationen
XLANG-s-Datentypen
XLANG-s-Anweisungen
XLANG-s-Ausdrücke
XLANG-s – reservierte Wörter
Typkonvertierungen von XLANG-/s in BPEL4WS