课程名称:领略Rust之美,挑战双高语言
课程章节: 第4章 Rust 流程控制 4-12 发散函数
课程讲师:叶枭
课程内容:
今天学习的内容是 Rust 中的发散函数。
发散函数
发散函数永远不会被返回,其返回值被标记为 !
,这是一个空类型:
fn foo() ->!{
panic!("这个函数调用永远没有返回");
}
panic!
宏会终止程序的执行,所以该函数没有返回。
发散函数和空返回值函数不同,后者可以被返回:
fn bar() {
()
}
fn main() {
let a:() = bar();
println!("在此可以看到函数 bar 的返回 ");
}
发散函数最大的用处就是用来通过 Rust 的类型检查。比如前面介绍 if
表达式时说过,如果存在多个条件分支,那么每个分支返回值的类型都要保持一致。可以使用发散函数调用的结果作为分支的返回,可以通过 Rust 的类型检查而不报错:
fn foo() ->!{
panic!("这个函数调用永远没有返回");
}
fn main() {
let a = if true {
10
} else {
foo()
}
println!("{}", a);
}
课程收获
这节课学习了 Rust 中的发散函数。发散函数基本上是用不到的,如果用到了,可以重新审视下代码,应该有更好的写法。
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦