[Rust] if let, while let ๊ตฌ๋ฌธ. refutable ํจํด
if let ๊ตฌ๋ฌธ์ ์๋์ ํ์์ ๊ฐ์ง๋ค.
if let ํจํด = ๊ฐ
๊ฐ์ด ํด๋น ํจํด์ ๋์๋๋ค๋ฉด ํจํด์์ ์ํํ๊ณ ๋ถ๊ธฐ๋ก ์ ์ด๋ ๋ค.
์๋ ์ฝ๋๋ Option ๊ฐ์ ๊ฐ๋ค๊ฐ ๋งค์นญ์ํค๋ ๊ฐ๋จํ ์ฝ๋๋ค.


while let๋ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
์๋์ ์ฝ๋๋ ๋ฌดํ๋ฃจํ๋ฅผ ๋ฐ์์ํจ๋ค.

๊ทผ๋ฐ ์ ์ํด๋ ์ ์ด ์๋ค.
if let์ด๋ while let์ ํจํด์๋ ๋ฐ๋ฐ๋ ์ ์๋(refutable) ํจํด๋ง์ด ๋ค์ด๊ฐ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์์์ ์ผ๋ ์ฝ๋๋ refutable ํจํด์ด์๋ค. ์ ์ฒด ์ฝ๋๊ฐ ์ด์จ๊ฑด๊ฐ์ ์ปดํ์ผ๋ฌ๊ฐ ๋ค ๋ถ์ํ ์๋ ์๊ณ , ์ ์ฌ์ ์ผ๋ก ํด๋น ํจํด์ ์คํจ๋ฅผ ํ ๊ฐ๋ฅ์ฑ์ ๋ดํฌํ๋ค๋ ๊ฒ์ด๋ค. num์ ๊ฐ์ด Some์ธ์ง None์ธ์ง ์ปดํ์ผ๋ฌ๊ฐ ์ด์ฐ ์๊ฒ ๋๊ฐ?
๊ทธ๋ ๋ค๋ฉด ๋ฐ๋ฐ๋ ์ ์๋(irrefutable) ํจํด์ ๋ฌด์์ผ๊น?
๊ฐ๋จํ๋ค. ์ด๋ฐ๊ฑฐ๋ค.
let val = 5422๋ ํจํด์ ๋ฌด์กฐ๊ฑด ์ฑ๊ณตํ ์๋ฐ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฐ๋ฐ(์คํจ)๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ์ด๋ฐ๋ฐ๋ค๊ฐ ๋ถ๊ธฐ๋ฅผ ๋ผ์๋๋ฉด ๋น์ฐํ ๋ฌด์๋ฏธํ ๋ถ๊ธฐ๊ฐ ๋ ๊ฒ์ด๋ค...
์ธ๋ฐ์๋ ์ฝ๋๋ฅผ ์๋ฐฉํ๊ธฐ ์ํด ์ค์นํด๋ ๊ฐ๋จํ ์์ ์ฅ์น๋ผ ํ ์ ์๋ค.
๊ทธ๋ ๋ค.