你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

条件表达式

条件表达式由三个子表达式组成,其中最左侧的子表达式为 Bool 类型,并确定对另外两个子表达式中的哪一个进行求值。 其形式

cond ? ifTrue | ifFalse

具体来说,如果 cond 计算结果为 true,则条件表达式计算结果为 ifTrue 表达式,否则计算结果为 ifFalse 表达式。 另一表达式(分别是 ifFalseifTrue 表达式)永远不会被计算,就像 if 语句中的分支一样。 例如,在表达式 a == b ? C(qs) | D(qs) 中,如果 a 等于 b,则调用可调用的 C。 否则,调用 D

ifTrueifFalse 表达式的类型必须具有通用基类型。 无论哪一个最终生成表达式计算的值,其类型始终与确定的基类型匹配。

例如,如果

  • 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

有关更多详细信息,请参阅子类型