函数
函数使用 fn 关键字声明。函数参数需要标注类型,就像变量一样。如果函数返回值,则必须在箭头 -> 后指定返回类型。
函数的最后一个表达式将作为返回值。另外,可以使用 return 语句在函数内部提前返回值,甚至可以在循环或 if 语句内部使用。
让我们用函数重写 FizzBuzz 吧!
// 与 C/C++ 不同,Rust 中函数定义的顺序没有限制
fn main() {
// 我们可以在这里使用函数,并在稍后的某处定义它
fizzbuzz_to(100);
}
// 返回布尔值的函数
fn is_divisible_by(lhs: u32, rhs: u32) -> bool {
// 特殊情况,提前返回
if rhs == 0 {
return false;
}
// 这是一个表达式,此处不需要 `return` 关键字
lhs % rhs == 0
}
// "无返回值"的函数实际上返回单元类型 `()`
fn fizzbuzz(n: u32) -> () {
if is_divisible_by(n, 15) {
println!("fizzbuzz");
} else if is_divisible_by(n, 3) {
println!("fizz");
} else if is_divisible_by(n, 5) {
println!("buzz");
} else {
println!("{}", n);
}
}
// 当函数返回 `()` 时,可以在函数签名中省略返回类型
fn fizzbuzz_to(n: u32) {
for n in 1..=n {
fizzbuzz(n);
}
}