【路径规划】混合人工蜂群ABC和粒子群优算法PSO机器人路径规划【含Matlab源码 14774期】
2025/12/24 18:17:50
在 Rust 中,分支语句用于根据条件执行不同的代码路径。Rust 主要提供以下几种分支结构:
if语句最基本的条件分支,与大多数语言类似:
fnmain(){letnumber=7;ifnumber<5{println!("条件为真");}else{println!("条件为假");}}fnmain(){letnumber=6;ifnumber%4==0{println!("能被4整除");}elseifnumber%3==0{println!("能被3整除");}else{println!("其他情况");}}if表达式(在 Rust 中是表达式!)Rust 的if可以返回值,这使得它非常强大:
fnmain(){letcondition=true;// if 作为表达式使用letnumber=ifcondition{5// 注意:没有分号}else{6// 两个分支必须返回相同类型};println!("number 的值为: {}",number);}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),}}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");}}elsefnmain(){letsome_value:Option<i32>=None;ifletSome(x)=some_value{println!("值是: {}",x);}else{println!("没有值");}}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);}}match必须处理所有可能情况matchnumber{xifx<0=>println!("负数"),0=>println!("零"),xifx>0=>println!("正数"),_=>unreachable!(),// 实际上不会执行到这里}这些分支语句使 Rust 的模式匹配功能非常强大,是 Rust 语言的核心特性之一。