为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第9天 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 中的发散函数。发散函数基本上是用不到的,如果用到了,可以重新审视下代码,应该有更好的写法。
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
2
获赞与收藏
4

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消