๋งคํฌ๋กœ

๋งคํฌ๋กœ๋Š” ์ปดํŒŒ์ผ ์ค‘์— Rust ์ฝ”๋“œ๋กœ ํ™•์žฅ๋˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋์— !๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. Rust ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ์šฉํ•œ ๋งคํฌ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • println!(format, ..) prints a line to standard output, applying formatting described in std::fmt.
  • format!(format, ..)์€ println!์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • dbg!(expression)์€ ํ‘œํ˜„์‹์˜ ๊ฐ’์„ ๊ธฐ๋กํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • todo!()๋Š” ์ผ๋ถ€ ์ฝ”๋“œ๋ฅผ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•˜๋ฉด ํŒจ๋‹‰์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • unreachable!()์€ ์ผ๋ถ€ ์ฝ”๋“œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•˜๋ฉด ํŒจ๋‹‰์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
fn factorial(n: u32) -> u32 {
    let mut product = 1;
    for i in 1..=n {
        product *= dbg!(i);
    }
    product
}

fn fizzbuzz(n: u32) -> u32 {
    todo!()
}

fn main() {
    let n = 4;
    println!("{n}! = {}", factorial(n));
}
This slide should take about 2 minutes.

์ด ์„น์…˜์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ผ๋ฐ˜์ ์ธ ํŽธ์˜ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งคํฌ๋กœ๋กœ ์ •์˜๋˜๋Š” ์ด์œ ์™€ ํ™•์žฅ ๋Œ€์ƒ์€ ํŠน๋ณ„ํžˆ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ๋Š” ๋งคํฌ๋กœ ์ •์˜๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” ํŒŒ์ƒ ๋งคํฌ๋กœ์˜ ์‚ฌ์šฉ์— ๊ด€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.