Rust 中的流程控制语句
if
语句
let a = 100;
if a > 50 {
println!("a > 50");
} else if a > 100 {
println!("a > 100");
} else {
println!("a <= 500");
}
//> a > 50
match
语句
let a = 100;
match a {
100 => println!("a = 100"),
200 => println!("a = 200"),
_ => println!("default"),
}
//> a = 100
let s = "hello";
match s {
"world" => println!("a = world"),
"hello" => println!("a = hello"),
_ => println!("default"),
}
//> a = hello
match 语句的返回值
let s = "hello";
let result = match s {
"world" => "s is world",
"hello" => "s is hello",
_ => "s is unknown"
};
println!("result: {}", result);
//> result: s is hello
if let
语句
if let
也是一种模式匹配语句,其功能类似于match语句,与match语句不同的地方在于,match语句是匹配所有可能的情况,而if let
只针对匹配时的情况
fn main() {
let a = Some(123);
if let Some(n) = a {
println!("n = {}", n);
}
}
//> n = 123
for
循环
// 左闭右开:
for i in 1..5 {
println!("{}", i);
}
//> 输出: 1 2 3 4
// 左闭右闭
for i in 1..=5 {
println!("{}", i);
}
//> 输出: 1 2 3 4 5
while
循环
let mut a = 5;
while a > 0 {
println!("a = {}", a);
a -= 1;
}
//> 输出: 5 4 3 2 1
loop
循环
let mut a = 5;
loop {
if a < 0 {
break;
}
println!("a = {}", a);
a -= 1;
}
//> 输出: 5 4 3 2 1 0
评论区