本部分讨论 XLANG/s 语言中使用的变量和运算符。
XLANG/s 变量
变量表示存储位置。 每个变量都有一个类型,用于确定哪些值可以存储在该变量中。 XLANG/s 的类型安全,其编译器保证存储在变量中的值始终为适当的类型。 XLANG/s 支持以下变量类型:
消息
关联集
服务链接
端口
可区分的内置值类型: Boolean、 Byte、 Char、 Decimal、 Double、 Int16、 Int32、 Int64、 SByte、 Single、 String、 UInt16、 UInt32 和 UInt64
对象
枚举类型
XLANG/s 为上述每种类型提供初始化语义。 此类初始化可视为对该类型变量的赋值。 在 XLANG/s 中,必须先明确分配变量,然后才能获取或使用变量的值。
XLANG/s 运算符
XLANG/s 支持以下运算符。 这些运算符与 C# 中相应运算符的功能基本一致。
| 运算符 | 说明 | 示例 |
|---|---|---|
| checked | 在算术溢出时引发错误 | checked (x = y * 1000) |
| unchecked | 忽略算术溢出 | 未选中 (x = y * 1000) |
| new | 创建类的实例 | myObject = new MyClass; |
| typeof | 检索类型 | myMapType = typeof (myMap) |
| succeeded | 成功完成事务范围或业务流程的测试 | 成功 (<当前范围或服务>) 的子事务的事务 ID |
| exists | 测试是否存在消息上下文属性 | Bts。RetryCount 存在Message_In |
| + | 一元加 | + (int x) |
| - | 一元负 | - (int x) |
| ! | 逻辑非 | !myBool |
| ~ | 按位补码 | x = ~y |
| () | 强制转换 | (bool) myInt |
| * | 时间 | Weight = MyMsg.numOrders * 20 |
| / | 除以 | x / y |
| + | Plus | x + y |
| - | Minus | x - y |
| << | 左移 | x << 2 |
| >> | 右移 | x >> 2 |
| < | 小于 | 如果 (MyMsg.numOrders < 10) ... |
| > | 大于 | 如果 (MyMsg.numOrders > 10) ... |
| <= | 小于或等于 | 如果 (MyMsg.numOrders <= 10) ... |
| >= | 大于或等于 | 如果 (MyMsg.numOrders >= 10) ... |
| == | 等于 | 如果 (MyMsg.numOrders == 10) ... |
| != | 不等于 | 如果 (MyMsg.numOrders != 10) ... |
另请参阅
XLANG-s 数据类型
XLANG-s 语句
XLANG-s 表达式
XLANG-s 保留字
XLANG-s 到 BPEL4WS 的类型转换