我正在研究Rust文档(书),并对使用分号分隔语句感到困惑.
在一个示例中,它使用println!宏作为以分号结束的语句:
use std::cmp::Ordering;
fn cmp(a: i32, b: i32) -> Ordering {
if a < b { Ordering::Less }
else if a > b { Ordering::Greater }
else { Ordering::Equal }
}
fn main() {
let x = 5;
let y = 10;
let ordering = cmp(x, y);
if ordering == Ordering::Less {
println!("less");
} else if ordering == Ordering::Greater {
println!("greater");
} else if ordering == Ordering::Equal {
println!("equal");
}
}
Run Code Online (Sandbox Code Playgroud)
当使用match表达式来简化它时...
use std::cmp::Ordering;
fn cmp(a: i32, b: i32) -> Ordering {
if a < b { Ordering::Less }
else if a > b { Ordering::Greater }
else { Ordering::Equal }
}
fn main() {
let x = 5;
let y = 10;
match cmp(x, y) {
Ordering::Less => println!("less"),
Ordering::Greater => println!("greater"),
Ordering::Equal => println!("equal"),
}
}
Run Code Online (Sandbox Code Playgroud)
分号消失了,表明这println!不是一个陈述,而是在这种情况下的表达.我不明白为什么......我错过了什么?