你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
条件表达式
条件表达式由三个子表达式组成,其中最左侧的子表达式为 Bool
类型,并确定对另外两个子表达式中的哪一个进行求值。 其形式
cond ? ifTrue | ifFalse
具体来说,如果 cond
计算结果为 true
,则条件表达式计算结果为 ifTrue
表达式,否则计算结果为 ifFalse
表达式。 另一表达式(分别是 ifFalse
和 ifTrue
表达式)永远不会被计算,就像 if
语句中的分支一样。
例如,在表达式 a == b ? C(qs) | D(qs)
中,如果 a
等于 b
,则调用可调用的 C
。 否则,调用 D
。
ifTrue
和 ifFalse
表达式的类型必须具有通用基类型。 无论哪一个最终生成表达式计算的值,其类型始终与确定的基类型匹配。
例如,如果
-
Op1
属于类型Qubit[] => Unit is Adj
-
Op2
属于类型Qubit[] => Unit is Ctl
-
Op3
属于类型Qubit[] => Unit is Adj + Ctl
然后在受影响的域控制器上,运行
-
cond ? Op1 | Op2
属于类型Qubit[] => Unit
-
cond ? Op1 | Op3
属于类型Qubit[] => Unit is Adj
-
cond ? Op2 | Op3
属于类型Qubit[] => Unit is Ctl
有关更多详细信息,请参阅子类型。