新运算符
twinBASIC 引入了几个新运算符来增强语言能力。每个运算符的参考页面位于 参考 → 运算符。
位移运算符
<< 和 >> 对数值变量执行左移和右移操作。注意超出可用大小的位移结果为 0,而不是回绕。
短路条件运算符
OrElse 和 AndAlso
使用常规的 Or 和 And 语句时,两边都会被计算,即使并非必要。使用短路运算符时,如果条件已由第一边确定,另一边不会被计算。因此如果你有 If Condition1 OrElse Condition2 Then,如果 Condition1 为 True,则 Condition2 不会被计算,由它调用的任何代码也不会运行。配套的合取运算符是 AndAlso。
If() 运算符
短路 If() 运算符,语法与传统 IIf 相同。这还有一个额外好处:如果变量是相同类型,不会将它们转换为 Variant;即 If(condition, Long, Long) 中的 Long 变量永远不会变成 Variant。
赋值运算符
+= -= /= \= *= ^= &= <<= >>=
这些等价于 var = var (operand) (var2)。因此 i += 1 等价于 i = i + 1。参见 参考 → 运算符 → 复合赋值 获取每个运算符的详细信息。
IsNot 运算符
用于测试对象等价性的 Is 运算符的逻辑反义。例如,你不再需要写 If (object Is Nothing) = False,现在可以写 If object IsNot Nothing Then。
示例
vb
Dim n As Long = &HFF
Dim shifted As Long = n << 4 ' result: &HFF0
n += 1 ' compound assignment: n = &H100
n <<= 2 ' left-shift assignment: n = &H400
Dim obj As Object = Nothing
If obj IsNot Nothing Then Debug.Print obj
Dim x As Long = -5
Debug.Print If(x >= 0, x, -x) ' short-circuit If(): prints 5