๋งค์น ๊ฐ๋
ํจํด ๋ค์ ๊ฐ๋(guard, ์กฐ๊ฑด์)๋ฅผ ๋ง๋ถ์ผ ์ ์์ต๋๋ค. ๊ฐ๋๋ ํจํด์ด ๋งค์น๋๋ฉด ์ถ๊ฐ๋ก ๋ฐ์ ธ๋ณด๋ ๋ถ๋ฆฌ์ธ ํํ์์ ๋๋ค:
#[rustfmt::skip] fn main() { let pair = (2, -2); println!("Tell me about {pair:?}"); match pair { (x, y) if x == y => println!("These are twins"), (x, y) if x + y == 0 => println!("Antimatter, kaboom!"), (x, _) if x % 2 == 1 => println!("The first one is odd"), _ => println!("No correlation..."), } }
ํค ํฌ์ธํธ:
- ๋งค์น ๊ฐ๋๋ ๋ณ๋์ ๋ฌธ๋ฒ ์์๋ก์ ํจํด ์์ฒด๋ง์ผ๋ก ํํํ๊ธฐ ์ด๋ ค์ด ๋ณต์กํ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํํํ๊ณ ์ ํ ๋ ์ ์ฉํฉ๋๋ค.
- ๋งค์น์ ๊ฐ ํ(ํน์ ๊ฐ์ง) ์์ ๋ฐ๋ก
if
๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ ๋ค๋ฆ ๋๋ค. ๋งค์น ๊ฐ์ง์=>
๋ค์ ์ฌ์ฉ๋if
ํํ์์ ํด๋น ๊ฐ์ง๊ฐ ์ ํ๋ ๋ค์์ ์คํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์if
์กฐ๊ฑด์ด ์คํจํ๋๋ผ๋ ์๋match
์ ๋ค๋ฅธ ๊ฐ์ง๋ ๊ณ ๋ ค๋์ง ์์ต๋๋ค. - ํจํด์ ์ ์๋ ๋ณ์๋ฅผ ๊ฐ๋์ ํํ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ฐ๋์ ์ ์๋ ์กฐ๊ฑด์
|
๋ฅผ ํฌํจํ๋ ํจํด์ ๋ชจ๋ ํํ์์ ์ ์ฉ๋ฉ๋๋ค.