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

【金秋打卡】第6天 Rust if let 和 while let 匹配

标签:
活动

课程章节: 第4章 Rust 流程控制 4-8 if_let语法糖 4-9 while_let语法糖

课程讲师叶枭

课程内容:

今天学习的内容是 Rust 中的 if-letwhile-let 语法糖。

if let 是模式匹配的语法糖,如果只需要匹配一种模式,就可以使用它,而不用使用 match

下面分别使用 match 和 if let 来实现一个功能,只打印枚举中的字母A:

enum Alphabet {
    A,
    B,
}

fn main() {
    let letter = Alphabet::A;

    match letter {
        Alphabet::A => println!("字母A"),
        _ => (),
    }
    // 使用 if let 更简洁一些
    if let Alphabet::A = letter {
        println!("字母A");
    }
}

if let 还可以用于匹配带有参数的枚举。比如,定义一个枚举,它的一个成员 Char 可以传入字符参数。当传入的字符匹配时,就执行对应的逻辑:

enum Symbol {
    Char(char),
    Number,
}

fn main() {
    let letter = Symbol::Char('A');
    
    if let Symbol::Char(x) = letter {
        println!("{}", x);
    }
}

while let

它的意思是当模式匹配成功时候,while 循环会一直循环下去。如下,如果 letter 的值为 Alphabet::A,即匹配到了,则循环会一直进行下去。

enum Alphabet {
    A,
    B
}

fn main() {
    let letter = Alphabet::A;
    
    while let Alphabet::A = letter {
        println!("字母A");
    }
}

课程收获

这节课学习了 Rust 中的模式匹配的两个语法糖,if letwhile let,前者用的非常多,可以简化模式匹配的用法。后者很少用到。
图片描述

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

关注作者,订阅最新文章

阅读免费教程

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消