函数
函数(function)使用 fn
关键字来声明。函数的参数需要标注类型,就和变量
一样,另外如果函数返回一个值,返回类型必须在箭头 ->
之后指定。
函数最后的表达式将作为返回值。也可在函数内使用 return
语句来提前返回值。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 + 1 { fizzbuzz(n); } }