不返回 (noreturn)
noreturn 是一个原语类型,表示表达式永远不会计算出结果。
以下表达式的类型为 noreturn:
return语句break语句continue语句unreachable表达式while (true) {}循环
兼容性
noreturn 类型可以强制转换为任何其他类型。这使得它可以用于需要特定类型的上下文中。
fn foo(condition: bool) i32 {
if (condition) {
return 1;
} else {
// unreachable 的类型是 noreturn,它可以强制转换为 i32
unreachable;
}
}
退出函数
标准库中的 std.process.exit 函数的返回类型是 noreturn,因为它会终止进程。
const std = @import("std");
fn fatal() noreturn {
std.process.exit(1);
}