Freigeben über


Rückgaben und Beendigung

Es stehen zwei Ausdrücke zur Verfügung, mit denen die Ausführung der aktuellen Unterroutine oder des Programms abgeschlossen wird; die return und die fail Ausdrücke. Im Allgemeinen können aufrufbare Personen ihre Ausführung beenden, bevor sie alle ihre Anweisungen mit einem return oder fail Ausdruck ausführen. Ein return Ausdruck beendet einfach die Ausführung des aktuellen Aufrufs, während ein fail die Ausführung des gesamten Programms beendet und zu einem Laufzeitfehler führt.

Rückgabeausdruck

Der return Ausdruck verlässt den aktuellen aufrufbaren Ausdruck und gibt die Steuerung an den Angerufenen zurück. Er ändert den Kontext der Ausführung, indem ein Stapelframe angezeigt wird.

Der Ausdruck gibt immer einen Wert in den Kontext des Angerufenen zurück. es besteht aus dem Schlüsselwort return, gefolgt von einem Ausdruck des entsprechenden Typs. Der Rückgabewert wird ausgewertet, bevor beendete Aktionen ausgeführt werden und die Steuerung zurückgegeben wird. Beendete Aktionen umfassen z. B. das Bereinigen und Freigeben von Qubits, die im Kontext der aufrufbaren Funktion zugeordnet sind. Wenn Sie auf einem Simulator oder einer Validator ausgeführt werden, umfassen beendigungsaktionen häufig auch Prüfungen im Zusammenhang mit dem Status dieser Qubits. Beispielsweise können sie überprüfen, ob sie ordnungsgemäß von allen Qubits getrennt sind, die leben.

Der return Ausdruck am Ende eines aufrufbaren Ausdrucks, der einen Unit Wert zurückgibt, kann weggelassen werden. In diesem Fall wird die Steuerung automatisch zurückgegeben, wenn alle Anweisungen abgeschlossen sind und alle beendeten Aktionen ausgeführt werden. Aufrufbare können mehrere return Ausdrücke enthalten, wenn die angrenzende Implementierung für Vorgänge mit mehreren return Ausdrücken nicht automatisch generiert werden kann.

Zum Beispiel

return 1;

oder

return ();

Fehlerausdruck

Der fail Ausdruck beendet die Berechnung vollständig. Es entspricht einem schwerwiegenden Fehler, der das Programm abbricht.

Es besteht aus dem Schlüsselwort fail, gefolgt von einem Ausdruck vom Typ String. Der String sollte Informationen zum aufgetretenen Fehler bereitstellen.

Zum Beispiel

fail "Impossible state reached";

oder mithilfe einer interpolierten Zeichenfolge

fail $"Syndrome {syn} is incorrect";

Neben dem gegebenen Stringsammelt ein fail Ausdruck idealerweise informationen über den Programmzustand und erlaubt den Abruf von Informationen. Dies erleichtert die Diagnose und Behebung der Fehlerquelle und erfordert Unterstützung von der Ausführungslaufzeit und Firmware, die je nach Ziel variieren kann.