函数
函数使用 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); } }