ํจ์
๋ฌ์คํธ ๋ฒ์ ์ 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
ํจ์์์ ๊ทธ ๋ค์์ ์ค๋ ํจ์๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฏธ๋ฆฌ ์ ์ธํ๊ธฐ(forward declaration)๋ ํค๋ ๊ฐ์๊ฑด ํ์ ์์ต๋๋ค.- ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ ๋์๋ ์ด๋ฆ์ ๋จผ์ ์ฐ๊ณ , ํ์
์ ๋์ค์ ์๋๋ค. ์ด๋ฆ๊ณผ ํ์
์
:
๋ก ๊ตฌ๋ถํฉ๋๋ค. ์ด๋ ์ผ๋ถ ์ธ์ด(์๋ฅผ ๋ค์ด C)์ ๋ฐ๋์์ ์ ์ํ์๊ธฐ ๋ฐ๋๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ฆฌํด ํ์ ๋ ํจ์์ ์์์ด ์๋ ๊ฐ์ฅ ๋ท๋ถ๋ถ์ ์ ์ธํฉ๋๋ค. - ํจ์ ๋ณธ๋ฌธ์ ๋ง์ง๋ง ํํ์์ ๋ฐํ ๊ฐ์ด ๋ฉ๋๋ค. ๊ฐ๋จํ, ์ ๋์ ์๋
;
๋ฅผ ์๋ตํ๋ฉด ๋ฉ๋๋ค. - ๋ฐํ๊ฐ์ด ์๋ ํจ์์ ๊ฒฝ์ฐ, ์ ๋ ํ์
()
์ ๋ฐํํฉ๋๋ค.-> ()
๊ฐ ์๋ต๋ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๋ ์ด๋ฅผ ์ถ๋ก ํฉ๋๋ค. fizzbuzz_to()
ํจ์ ๋ดfor
๋ฐ๋ชฉ๋ฌธ์ ๋ฒ์ ํํ์ ์ค=n
์ n๊น์ง ํฌํจํ๋ค๋ ์๋ฏธ์ ๋๋ค.