์—ฐ์‚ฐ

fn interproduct(a: i32, b: i32, c: i32) -> i32 {
    return a * b + b * c + c * a;
}

fn main() {
    println!("๊ฒฐ๊ณผ: {}", interproduct(120, 100, 248));
}
This slide should take about 3 minutes.

main ์ด์™ธ์˜ ํ•จ์ˆ˜๋Š” ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด์ง€๋งŒ ์˜๋ฏธ๋Š” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ์„ธ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋Š” ๋‚˜์ค‘์— ๋” ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.

์‚ฐ์ˆ ์—ฐ์‚ฐ์€ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๋ฉฐ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? C ๋ฐ C++์—์„œ ๋ถ€ํ˜ธ์žˆ๋Š” ์ •์ˆ˜์˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋Š” ์‹ค์ œ๋กœ ์ •์˜๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋‹ค๋ฅธ ํ”Œ๋žซํผ์ด๋‚˜ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Rust์—์„œ๋Š” ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ ์‹œ์˜ ๋™์ž‘์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Change the i32โ€™s to i16 to see an integer overflow, which panics (checked) in a debug build and wraps in a release build. There are other options, such as overflowing, saturating, and carrying. These are accessed with method syntax, e.g., (a * b).saturating_add(b * c).saturating_add(c * a).

์‚ฌ์‹ค ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ƒ์ˆ˜ ํ‘œํ˜„์‹์˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ๊ฐ์ง€ํ•˜๋ฏ€๋กœ ์ด ์˜ˆ์—์„œ๋Š” ๋ณ„๋„์˜ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.