通过Rust书阅读,我遇到了一个有趣的话题 - 不同的功能:
Rust有一些特殊的'分叉函数'语法,这些函数不返回:
Run Code Online (Sandbox Code Playgroud)fn diverges() -> ! { panic!("This function never returns!"); }
发散功能可以用作任何类型:
Run Code Online (Sandbox Code Playgroud)let x: i32 = diverges(); let x: String = diverges();
发散功能的用例是什么?这本书说的
panic!()导致当前执行的线程与给定的消息一起崩溃.因为此函数会导致崩溃,所以它永远不会返回,因此它具有类型!
这是有道理的,但我不能想到一个不同的功能将在哪里使用,它似乎非常本地化panic!.我知道必须有一些有用的场景,为什么他们引入了不同的功能.在Rust哪里可能会看到不同的功能?
rust ×1