Dela via


Returer och uppsägning

Det finns två tillgängliga uttryck som avslutar körningen av den aktuella underrutinen eller programmet. och return uttrycken fail . I allmänhet kan anropbara objekt avsluta körningen innan de kör alla sina -instruktioner med ett return eller fail -uttryck. Ett return uttryck avslutar bara körningen av det aktuella anropet, medan ett fail avslutar körningen av hela programmet och resulterar i ett körningsfel.

Returuttryck

Uttrycket return avslutas från den aktuella anropbara och returnerar kontrollen till anroparen. Det ändrar kontexten för körningen genom att poppa en stackram.

Uttrycket returnerar alltid ett värde till kontexten för anroparen. det består av nyckelordet return, följt av ett uttryck av lämplig typ. Returvärdet utvärderas innan några avslutande åtgärder utförs och kontrollen returneras. Avslutande åtgärder omfattar till exempel rensning och borttagning av kvantbitar som allokeras inom kontexten för anropsbara objekt. När du kör på en simulator eller validator omfattar avslutande åtgärder ofta även kontroller relaterade till tillståndet för dessa kvantbitar, till exempel om de är korrekt disentangled från alla qubitar som förblir live.

Uttrycket return i slutet av en anropbar fil som returnerar ett Unit värde kan utelämnas. I så fall returneras kontrollen automatiskt när alla instruktioner har körts och alla avslutande åtgärder har utförts. Anropsbara objekt kan innehålla flera return uttryck, även om den angränsande implementeringen för åtgärder som innehåller flera return uttryck inte kan genereras automatiskt.

Exempel:

return 1;

eller

return ();

Feluttryck

Uttrycket fail avslutar beräkningen helt och hållet. Det motsvarar ett allvarligt fel som avbryter programmet.

Det består av nyckelordet fail, följt av ett uttryck av typen String. String Bör ge information om det påträffade felet.

Exempel:

fail "Impossible state reached";

eller, med hjälp av en interpolerad sträng,

fail $"Syndrome {syn} is incorrect";

Förutom den angivna Stringsamlar ett fail uttryck helst in och tillåter hämtning av information om programtillståndet. Detta underlättar diagnostisering och åtgärd av källan till felet och kräver stöd från körningen och den inbyggda programvaran, som kan variera mellan olika mål.