반환 및 종료
현재 서브루틴 또는 프로그램의 실행을 종료하는 두 가지 식을 사용할 수 있습니다. 및 return
식 fail
입니다. 일반적으로 호출 가능 개체는 또는 fail
식을 사용하여 모든 문을 실행하기 전에 실행을 종료할 수 있습니다return
. return
식은 현재 callalbe의 실행을 종료하는 반면 은 fail
전체 프로그램의 실행을 종료하고 런타임 오류가 발생합니다.
반환 식
식은 return
현재 호출 가능 항목에서 종료되고 호출 수신자에게 컨트롤을 반환합니다. 스택 프레임을 표시하여 실행 컨텍스트를 변경합니다.
식은 항상 호출 수신자의 컨텍스트에 값을 반환합니다. 는 키워드(keyword)return
, 그 뒤에 적절한 형식의 식으로 구성됩니다. 반환 값은 종료 작업이 수행되고 컨트롤이 반환되기 전에 평가됩니다. 종료 작업에는 호출 가능 항목의 컨텍스트 내에서 할당된 큐비트를 정리하고 해제하는 것과 같은 작업이 포함됩니다. 시뮬레이터 또는 유효성 검사기에서 실행할 때 종료 작업에는 이러한 큐비트의 상태와 관련된 검사(예: 라이브로 남아 있는 모든 큐비트의 얽힘이 제대로 풀리는지 여부)도 포함되는 경우가 많습니다.
return
값을 반환하는 호출 가능 항목의 끝에 있는 Unit
식을 생략할 수 있습니다. 이 경우 모든 명령문이 실행되고 모든 종료 작업이 수행되면 제어를 자동으로 반환합니다. 호출 가능 항목에는 여러 return
식이 포함될 수 있지만 여러 return
식을 포함하는 작업에 대한 인접 구현은 자동으로 생성될 수 없습니다.
예를 들면 다음과 같습니다.
return 1;
또는
return ();
식 실패
식은 fail
계산을 완전히 종료합니다. 이는 프로그램을 중단하는 치명적인 오류에 해당합니다.
키워드(keyword) fail
및 형식String
의 식으로 구성됩니다.
은 String
발생한 실패에 대한 정보를 제공해야 합니다.
예를 들면 다음과 같습니다.
fail "Impossible state reached";
또는 보간된 문자열을 사용하여
fail $"Syndrome {syn} is incorrect";
지정된 String
외에도 식은 fail
이상적으로 프로그램 상태에 대한 정보를 수집하고 검색할 수 있도록 허용합니다. 이렇게 하면 오류의 원인을 쉽게 진단하고 수정할 수 있으며 여러 대상에 따라 다를 수 있는 실행하는 런타임 및 펌웨어의 지원이 필요합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기