你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

返回和终止

有两个表达式可用于结束当前子例程或程序的执行;returnfail 表达式。 通常,可调用方可以在使用 returnfail 表达式执行所有语句之前结束其执行。 return 表达式只是结束当前可调用对象的执行,而 fail 结束整个程序的执行并导致运行时错误。

返回表达式

return 表达式退出当前可调用对象,并将控件返回到被调用方。 它通过弹出堆栈帧来更改执行上下文。

表达式始终将值返回给被调用方的上下文;它包含关键字 return,后跟相应类型的表达式。 在执行任何终止作并返回控件之前,将计算返回值。 终止作包括清理和释放在可调用对象的上下文中分配的量子比特。 在模拟器或验证程序上运行时,终止作通常还包括与这些量子比特的状态相关的检查。 例如,他们可能会检查它们是否与保持生存状态的所有量子位正确脱节。

返回 Unit 值的可调用对象的末尾的 return 表达式可能会被省略。 在这种情况下,当所有语句完成并执行所有终止作时,将自动返回控件。 可调用项可能包含多个 return 表达式,尽管不能自动生成包含多个 return 表达式的作的相邻实现。

例如,

return 1;

return ();

Fail 表达式

fail 表达式完全结束计算。 它对应于中止程序的致命错误。

它由关键字 fail组成,后跟 String类型的表达式。 String 应提供有关遇到故障的信息。

例如,

fail "Impossible state reached";

或者,使用 内插字符串

fail $"Syndrome {syn} is incorrect";

除了给定的 String,理想情况下,fail 表达式还会收集和允许检索有关程序状态的信息。 这有助于诊断和纠正错误的来源,并且需要执行运行时和固件的支持,这可能因不同的目标而异。