操作符 Or (位或)
 
返回两个数值的位或 (逻辑或)

语法

Declare Operator Or ( ByRef lhs As T1 , ByRef rhs As T2 ) As Ret

用法

result = lhs Or rhs

参数

lhs
左边的表达式。
T1
任何数字类型。
rhs
右侧表达。
T2
任何数字类型。
Ret
数字类型(因T1 T2 而异)。

返回值

返回两个操作数的逐位分离。

说明

该运算符返回其操作数的逐位分离,这是一个逻辑运算,它导致根据操作数的位设置位的值。

下面的真值表展示了布尔分离操作的所有组合:

Lhs位Rhs位结果
000
101
011
111


不执行短路 - 两个表达式总是被评估。

返回类型取决于传递的值的类型。ByteUByte和浮点类型值首先转换为Integer.如果左侧和右侧的类型仅在符号性方面不同,则返回类型与左侧类型(T1 )相同,否则返回两种类型中的较大者。

对于用户定义的类型,此运算符可能会重载。

例子

'在两个数值上使用OR运算符
Dim As UByte numeric_value1, numeric_value2
numeric_value1 = 15 '00001111
numeric_value2 = 30 '00011110

'结果= 31 = 00011111
Print numeric_value1 Or numeric_value2
Sleep


'在两个条件表达式上使用OR运算符
Dim As UByte numeric_value
numeric_value = 10

If numeric_value = 5 Or numeric_value = 10 Then Print "Numeric_Value等于5或10"
Sleep

'这将输出“Numeric_Value等于5或10”,因为
'而第一个IF语句的第一个条件为false,则第二个为true


方言差异

  • -lang qb 方言中,此运算符无法重载。

与QB差别

  • 没有

参考