函数
一个 Rust 版本的著名 FizzBuzz 面试题:
fn main() { print_fizzbuzz_to(20); } fn is_divisible(n: u32, divisor: u32) -> bool { if divisor == 0 { return false; } n % divisor == 0 } fn fizzbuzz(n: u32) -> String { let fizz = if is_divisible(n, 3) { "fizz" } else { "" }; let buzz = if is_divisible(n, 5) { "buzz" } else { "" }; if fizz.is_empty() && buzz.is_empty() { return format!("{n}"); } format!("{fizz}{buzz}") } fn print_fizzbuzz_to(n: u32) { for i in 1..=n { println!("{}", fizzbuzz(i)); } }
- 我们在
main
中引用了下面编写的一个函数。不需要提前声明或添加头文件。 - 类型跟随在声明的参数后(与某些编程语言相反),然后是返回类型。
- 函数体(或任何块)中的最后一个表达式将成为返回值。只需省略表达式末尾的
;
即可。 - 有些函数没有返回值,会返回“单元类型(unit type)”
()
。如果省略了-> ()
的返回类型,编译器将会自动推断。 print_fizzbuzz_to()
函数中for
循环的范围表达式(range expression)包含=n
,这会导致它包括上限。