戻り値と終了
現在のサブルーチンまたはプログラムの実行を終了する 2 つの式を使用できます。 return
と fail
式。 一般に、呼び出し可能関数は、 または fail
式を使用してすべてのステートメントを実行する前に実行をreturn
終了することがあります。
return
式は現在の callalbe の実行を終了するだけです。一方fail
、 はプログラム全体の実行を終了し、実行時エラーが発生します。
戻り値の式
式は return
現在の呼び出し可能から終了し、呼び出し先に制御を返します。 スタック フレームをポップすることによって、実行のコンテキストが変更されます。
式は常に、呼び出し先のコンテキストに値を返します。キーワード (keyword)でreturn
構成され、その後に適切な型の式が続きます。 戻り値は、何らかの終了アクションが実行される前に評価され、制御が戻されます。 終了アクションには、その callable のコンテキスト内で割り当てられている量子ビットのクリーンアップや解放などが含まれます。 シミュレーターまたは検証コントロールで実行しているときは、多くの場合、その量子ビットの状態に関連した確認 (ライブ状態のままになっているすべての量子ビットから正常にもつれが解かれたかどうかなど) も終了アクションに含まれます。
return
値を返す呼び出し可能オブジェクトの末尾にある式はUnit
省略できます。 その場合は、すべてのステートメントが実行され、すべての終了アクションが実行されたときに、自動的に制御が戻されます。 呼び出し可能には複数 return
の式が含まれる場合があります。ただし、複数 return
の式を含む操作の隣接する実装を自動的に生成することはできません。
たとえば、次のように入力します。
return 1;
or
return ();
Fail 式
式は fail
計算を完全に終了します。 これは、プログラムを中止する致命的なエラーに対応します。
これは、キーワード (keyword) fail
で構成され、その後に 型String
の式が続きます。
は String
、発生したエラーに関する情報を提供する必要があります。
たとえば、次のように入力します。
fail "Impossible state reached";
または、補間された文字列を使用します。
fail $"Syndrome {syn} is incorrect";
指定 String
された に加えて、式は fail
プログラムの状態に関する情報を収集して取得することを理想的に許可します。 これにより、エラーの原因の診断と修正が容易になり、実行中のランタイムとファームウェアからのサポートが必要になります。これは、ターゲットによって異なる場合があります。