Freigeben über


Rückgaben und Beendigung

Es stehen zwei Ausdrücke zur Verfügung, die die Ausführung der aktuellen Unterroutine oder des Programms abschließen. und return die fail Ausdrücke. Im Allgemeinen können aufrufbare Elemente ihre Ausführung beenden, bevor alle ihre Anweisungen mit einem - oder fail -returnAusdruck ausgeführt werden. Ein return Ausdruck beendet lediglich 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 das aktuell aufrufbare Element und gibt die Steuerung an den Aufgerufenen zurück. Sie ändert den Kontext der Ausführung, indem ein Stapelrahmen per Pop entfernt wird.

Der Ausdruck gibt immer einen Wert an den Kontext des Aufgerufenen zurück. es besteht aus dem Schlüsselwort (keyword) return, gefolgt von einem Ausdruck des entsprechenden Typs. Der Rückgabewert wird ausgewertet, bevor Beendigungsaktionen ausgeführt und die Steuerung zurückgegeben wird. Zu diesen Beendigungsaktionen zählen z. B. das Bereinigen und Freigeben von Qubits, die im Kontext der aufrufbaren Komponente zugeordnet sind. Bei der Ausführung in einem Simulator oder Validator umfassen die Beendigungsaktionen häufig auch Prüfungen, die sich auf den Zustand dieser Qubits beziehen – etwa, ob sie ordnungsgemäß von allen noch aktiven Qubits getrennt wurden.

Der return Ausdruck am Ende eines aufrufbaren , der einen Unit Wert zurückgibt, kann ausgelassen werden. In diesem Fall wird die Steuerung automatisch zurückgegeben, wenn alle Anweisungen und alle Beendigungsaktionen ausgeführt wurden. Aufrufbare Elemente können mehrere return Ausdrücke enthalten, obwohl die angrenzende Implementierung für Vorgänge, die mehrere return Ausdrücke enthalten, nicht automatisch generiert werden kann.

Beispiel:

return 1;

oder

return ();

Fehlerausdruck

Der fail Ausdruck beendet die Berechnung vollständig. Sie entspricht einem schwerwiegenden Fehler, der zum Abbruch des Programms führt.

Sie besteht aus dem Schlüsselwort (keyword) fail, gefolgt von einem Ausdruck vom Typ String. Sollte String Informationen zum aufgetretenen Fehler bereitstellen.

Beispiel:

fail "Impossible state reached";

oder mithilfe einer interpolierten Zeichenfolge,

fail $"Syndrome {syn} is incorrect";

Zusätzlich zum angegebenen Stringsammelt und ermöglicht ein fail Ausdruck idealerweise das Abrufen von Informationen über den Programmzustand. Dies erleichtert die Diagnose und Behandlung der Fehlerquelle, erfordert die Unterstützung vonseiten der ausführenden Runtime und Firmware und kann von Ziel zu Ziel variieren.