Dönüşler ve sonlandırma

Geçerli alt bölümün veya programın yürütülmesini sonlandıran iki ifade vardır; return ve fail ifadeleri. Genel olarak, çağrılabilirler tüm deyimlerini bir return veya fail ifadesiyle yürütmeden önce yürütmelerini sonlandırabilir. bir return ifade yalnızca geçerli callalbe yürütmesini sona erdirirken, bir fail tüm programın yürütülmesini sona erdirecek ve çalışma zamanı hatasına neden olacaktır.

Dönüş ifadesi

İfade return geçerli çağrılabilir öğeden çıkar ve denetimi çağırana döndürür. Bir yığın çerçevesi açarak yürütmenin bağlamını değiştirir.

İfade her zaman çağıranın bağlamı için bir değer döndürür; anahtar sözcüğünden returnve ardından uygun türde bir ifadeden oluşur. Dönüş değeri, sonlandırıcı eylemler gerçekleştirilmeden ve denetim döndürülmeden önce değerlendirilir. Sonlandırma eylemleri, örneğin çağrılabilen bağlam içinde ayrılan kubitleri temizlemeyi ve serbest bırakmayı içerir. Bir simülatörde veya doğrulayıcıda çalışırken, sonlandırma eylemleri genellikle bu kubitlerin durumuyla ilgili denetimleri de içerir; örneğin, canlı kalan tüm kubitlerden düzgün bir şekilde ayrılmış olup olmadıkları.

Bir return değer döndüren Unit çağrılabilir öğesinin sonundaki ifade atlanabilir. Bu durumda, tüm deyimler çalıştırıldığında ve tüm sonlandırma eylemleri gerçekleştirildiğinde denetim otomatik olarak döndürülür. Çağrılabilirler birden çok return ifade içerebilir, ancak birden çok return ifade içeren işlemler için bitişik uygulama otomatik olarak oluşturulamaz.

Örneğin,

return 1;

veya

return ();

Hata ifadesi

İfade fail , hesaplamayı tamamen sonlandırır. Programı durduran önemli bir hataya karşılık gelir.

anahtar sözcüğünden failve ardından türünde Stringbir ifadeden oluşur. , String karşılaşılan hata hakkında bilgi sağlamalıdır.

Örneğin,

fail "Impossible state reached";

veya ilişkilendirilmiş bir dize kullanarak,

fail $"Syndrome {syn} is incorrect";

Verilen Stringifadeye ek olarak, bir fail ifade ideal olarak program durumu hakkındaki bilgilerin alınmasına izin verir ve toplar. Bu, hatanın kaynağını tanılamayı ve düzeltmeyi kolaylaştırır ve farklı hedeflerde farklılık gösterebilecek yürütme çalışma zamanı ve üretici yazılımı desteği gerektirir.