Visszatérés és bezárás

Két kifejezés érhető el, amelyek az aktuális alrutin vagy a program végrehajtását zárják le; a return és a fail kifejezéseket. A hívhatók általában befejezhetik a végrehajtást, mielőtt az összes utasításukat egy return vagy fail kifejezéssel hajtanák végre. Egy return kifejezés éppen befejezi az aktuális callalbe végrehajtását, míg egy fail az egész program végrehajtását befejezi, és futásidejű hibát eredményez.

Kifejezés visszaadása

A return kifejezés kilép az aktuális hívhatóból, és visszaadja a vezérlést a hívónak. Egy veremkeret felugratásával módosítja a végrehajtás környezetét.

A kifejezés mindig értéket ad vissza a hívó környezetének; a kulcsszóból returnáll, amelyet a megfelelő típusú kifejezés követ. A visszaadott érték kiértékelése a megszüntető műveletek végrehajtása és a vezérlő visszaadása előtt történik. A megszüntetési műveletek közé tartozik például a hívható környezetében lefoglalt qubitek tisztítása és felszabadítása. Szimulátoron vagy érvényesítőn való futtatáskor a megszakítási műveletek gyakran magukban foglalják a qubitek állapotával kapcsolatos ellenőrzéseket is, például azt, hogy megfelelően vannak-e eltávolítva az összes élő qubittől.

Előfordulhat return , hogy a hívható végén lévő kifejezés, amely értéket ad Unit vissza, kihagyható. Ebben az esetben a rendszer automatikusan visszaadja a vezérlőt, ha az összes utasítás lefutott, és az összes megszüntető műveletet végrehajtották. A hívható függvények több return kifejezést is tartalmazhatnak, bár a több return kifejezést tartalmazó műveletek szomszédos implementációja nem hozható létre automatikusan.

Példa:

return 1;

vagy

return ();

Feladatkifejezés

A fail kifejezés teljesen befejezi a számítást. Ez egy végzetes hibának felel meg, amely megszakítja a programot.

A kulcsszóból fail, majd egy típuskifejezésből Stringáll. A String rendszernek meg kell adnia az észlelt hibával kapcsolatos információkat.

Példa:

fail "Impossible state reached";

vagy interpolált sztring használatával

fail $"Syndrome {syn} is incorrect";

A megadott Stringmellett egy fail kifejezés ideális esetben gyűjti és engedélyezi a programállapotra vonatkozó információk lekérését. Ez megkönnyíti a hiba forrásának diagnosztizálását és orvoslását, és támogatást igényel a végrehajtó futtatókörnyezettől és a belső vezérlőprogramtól, amelyek különböző céloktól függően változhatnak.