共用方式為


呼叫表達式

呼叫表達式是任何程序設計語言的重要部分。 作業和函數調用與 部分應用程式非常類似,只要傳回的值是適合的類型,就可以作為任何位置的表達式。

此窗體中呼叫作業的實用性主要在於偵錯,而這類作業呼叫是任何 Q# 程式中最常見的建構之一。 同時,只能從其他作業內呼叫作業,而不能從函式內呼叫作業。 如需詳細資訊,請參閱 Qubits

使用可呼叫項做為第一級值時,呼叫表達式是支援模式的一般方式,這些模式不夠常見以利自己的專用語言建構,或專用語法尚未因其他原因而 () 。 有一些連結庫方法的範例,其用途為 ApplyIf,它會叫用設定之傳統位的條件式作業; ApplyToEach,它會將指定的作業套用至數位中的每個元素;和 ApplyWithInputTransformation,如下列範例所示。

    operation ApplyWithInputTransformation<'TArg, 'TIn>(
        fn : 'TIn -> 'TArg,
        op : 'TArg => Unit,
        input : 'TIn
    ) : Unit {

        op(fn(input));
    }

ApplyWithInputTransformation 會採用函式 fn、作業 opinput 值做為自變數,然後將指定的函式套用至輸入,再叫用指定作業,並使用從函式傳回的值。

若要讓編譯程式自動產生特製化以支援特定的 式,通常需要呼叫的作業也支持這些函式。 這兩個例外狀況是在結合的外部區塊中呼叫,這一律需要支援Adjoint函式,但永遠不需要支援函式,以及自我相鄰作業,這可支援ControlledAdjoint函式,而不會對個別呼叫造成任何其他需求。