news 2026/4/24 10:28:34

【Rust】分支语句详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Rust】分支语句详解

在 Rust 中,分支语句用于根据条件执行不同的代码路径。Rust 主要提供以下几种分支结构:

1.if语句

最基本的条件分支,与大多数语言类似:

fnmain(){letnumber=7;ifnumber<5{println!("条件为真");}else{println!("条件为假");}}

多条件分支

fnmain(){letnumber=6;ifnumber%4==0{println!("能被4整除");}elseifnumber%3==0{println!("能被3整除");}else{println!("其他情况");}}

2.if表达式(在 Rust 中是表达式!)

Rust 的if可以返回值,这使得它非常强大:

fnmain(){letcondition=true;// if 作为表达式使用letnumber=ifcondition{5// 注意:没有分号}else{6// 两个分支必须返回相同类型};println!("number 的值为: {}",number);}

3.match表达式

match是 Rust 中最强大的分支语句,类似于其他语言的 switch,但功能更强大:

fnmain(){letvalue=3;matchvalue{1=>println!("一"),2=>println!("二"),3=>println!("三"),_=>println!("其他数字"),// _ 是通配符}}

match返回值的例子:

fnmain(){letnumber=2;letdescription=matchnumber{1=>"一",2=>"二",3=>"三",_=>"其他",};println!("{}",description);}

范围匹配

fnmain(){letage=25;matchage{0..=18=>println!("未成年"),19..=60=>println!("成年"),_=>println!("老年"),}}

模式匹配(解构)

enumMessage{Quit,Move{x:i32,y:i32},Write(String),}fnmain(){letmsg=Message::Move{x:10,y:20};matchmsg{Message::Quit=>println!("退出"),Message::Move{x,y}=>println!("移动到 ({}, {})",x,y),Message::Write(text)=>println!("写入: {}",text),}}

4.if let语法糖

用于处理只关心一种匹配情况时的简化写法:

fnmain(){letsome_option_value=Some(3);// 传统 match 写法matchsome_option_value{Some(3)=>println!("值是3"),_=>(),}// 使用 if let 简化ifletSome(3)=some_option_value{println!("值是3");}}

结合else

fnmain(){letsome_value:Option<i32>=None;ifletSome(x)=some_value{println!("值是: {}",x);}else{println!("没有值");}}

5.while let循环匹配

类似于if let,但在循环中使用:

fnmain(){letmutstack=Vec::new();stack.push(1);stack.push(2);stack.push(3);// 只要 pop 返回 Some,就继续循环whileletSome(top)=stack.pop(){println!("{}",top);}}

重要特点

  1. 完备性检查match必须处理所有可能情况
  2. 模式绑定:可以直接在分支中提取值
  3. 守卫条件:可以在模式后添加额外的条件检查
matchnumber{xifx<0=>println!("负数"),0=>println!("零"),xifx>0=>println!("正数"),_=>unreachable!(),// 实际上不会执行到这里}

这些分支语句使 Rust 的模式匹配功能非常强大,是 Rust 语言的核心特性之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:33:16

python基于VUE敬老院管理系统养老院_35806vue

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 python基于VUE敬老院管理系统养老院_35806vue 开发技术…

作者头像 李华
网站建设 2026/4/23 15:00:22

python房屋交易系统_88j45_pycharm django vue flask

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 python房屋交易系统_88j45_pycharm django vue flask 开…

作者头像 李华
网站建设 2026/4/23 13:20:05

python高校党支部党务管理系统_pycharm django vue flask

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 python高校党支部党务管理系统_pycharm django vue flask …

作者头像 李华
网站建设 2026/4/23 13:14:52

自动化测试用例“腐化”怎么办?四大重构策略拯救你的脚本

当自动化测试用例开始“腐化” 在软件产品的快速迭代周期中&#xff0c;自动化测试脚本无疑是保障质量、提升效率的基石。然而&#xff0c;许多测试团队在享受自动化测试带来的早期红利后&#xff0c;往往会面临一个日益严峻的挑战&#xff1a;测试用例的“腐化”&#xff08;…

作者头像 李华
网站建设 2026/4/23 14:48:57

计算机Java毕设实战-基于springboot+vue的在线音乐创作分享网站基于SpringBoot的音乐分享与交流平台设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华