Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er zijn twee expressies beschikbaar waarmee de uitvoering van de huidige subroutine of het programma wordt afgesloten; de return en de fail expressies. Over het algemeen kunnen aanroepbare apparaten hun uitvoering beëindigen voordat ze al hun instructies uitvoeren met een return of fail expressie. Een return expressie beëindigt alleen de uitvoering van het huidige aanroepbare, terwijl een fail de uitvoering van het hele programma beëindigt en een runtimefout oplevert.
Retourexpressie
De return expressie verlaat het huidige aanroepbare en retourneert het besturingselement naar de aanroep. De context van de uitvoering wordt gewijzigd door een stackframe te openen.
De expressie retourneert altijd een waarde in de context van de aangeroepene; het bestaat uit het trefwoord return, gevolgd door een expressie van het juiste type. De retourwaarde wordt geëvalueerd voordat afsluitacties worden uitgevoerd en het besturingselement wordt geretourneerd. Afsluitacties omvatten bijvoorbeeld het opschonen en vrijgeven van qubits die zijn toegewezen binnen de context van het aanroepbare item. Bij het uitvoeren op een simulator of validator omvatten afsluitacties vaak ook controles met betrekking tot de status van deze qubits. Ze kunnen bijvoorbeeld controleren of ze correct zijn ontstrengeld van alle qubits die live blijven.
De return-expressie aan het einde van een aanroepbaar dat een Unit waarde retourneert, kan worden weggelaten. In dat geval wordt het besturingselement automatisch geretourneerd wanneer alle instructies zijn voltooid en alle afsluitacties worden uitgevoerd. Aanroepbare items kunnen meerdere return expressies bevatten, hoewel de aangrenzende implementatie voor bewerkingen met meerdere return expressies niet automatisch kan worden gegenereerd.
Bijvoorbeeld
return 1;
of
return ();
Expressie mislukt
De fail-expressie beëindigt de berekening volledig. Het komt overeen met een fatale fout die het programma afbreekt.
Het bestaat uit het trefwoord fail, gevolgd door een expressie van het type String.
De String moet informatie opgeven over de fout die is opgetreden.
Bijvoorbeeld
fail "Impossible state reached";
of, met behulp van een geïnterpoleerde tekenreeks,
fail $"Syndrome {syn} is incorrect";
Naast de gegeven String, verzamelt en toestaat een fail expressie idealiter het ophalen van informatie over de programmastatus. Dit vereenvoudigt het diagnosticeren en verhelpen van de bron van de fout en vereist ondersteuning van de uitvoering van runtime en firmware, die kunnen variëren tussen verschillende doelen.