條件運算式
條件表達式是由三個子表達式所組成,其中最左邊的子表達式屬於 類型 Bool
,並決定評估其他兩個子表達式的其中一個。 其形式如下
cond ? ifTrue | ifFalse
具體而言,如果 cond
評估為 true
,則條件表達式會評估為 ifTrue
表達式,否則會評估為 ifFalse
表達式。 (和 ifTrue
表達式的另一ifFalse
個表達式,分別) 永遠不會評估,就像語句中的分支一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
如需詳細資訊,請參閱 子樣式。