【发布时间】:2015-06-26 21:02:21
【问题描述】:
阅读 Rust 书,我遇到了an interesting topic — divergent functions:
Rust 有一些用于“发散函数”的特殊语法,它们是 不返回的函数:
fn diverges() -> ! { panic!("This function never returns!"); }
发散函数可以用作任何类型:
let x: i32 = diverges(); let x: String = diverges();
发散函数的用例是什么?书上说
panic!()导致当前执行线程崩溃 给定的消息。因为这个函数会导致崩溃,所以它永远不会 返回,所以它的类型为!
这是有道理的,但我想不出还有什么地方可以使用发散函数,而且它似乎非常本地化为 panic!。我知道肯定有一些有用的场景可以解释为什么他们引入了不同的功能。在 Rust 中我可能会在哪里看到不同的函数?
【问题讨论】:
标签: rust