函式
這是知名面試問題 FizzBuzz 的 Rust 版本:
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
中參照以下所寫的函式。不需前向宣告,也不需標頭。 - 宣告參數後面接有型別 (與某些程式設計語言相反),然後才是傳回型別。
- 函式主體 (或任何區塊) 中的最後一個運算式會成為回傳值。您只要省略運算式結尾的
;
即可。 - 某些函式沒有回傳值,會傳回
()
這個「單位型別」。如果省略-> ()
傳回型別,編譯器則會推斷出這點。 print_fizzbuzz_to()
中for
迴圈的範圍運算式含有=n
,因此會包含上限值。