你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
有两个表达式可用于结束当前子例程或程序的执行;return 和 fail 表达式。 通常,可调用方可以在使用 return 或 fail 表达式执行所有语句之前结束其执行。
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 表达式还会收集和允许检索有关程序状态的信息。 这有助于诊断和纠正错误的来源,并且需要执行运行时和固件的支持,这可能因不同的目标而异。