[Rust] let else

๊ด€๋ จ ํฌ์ŠคํŠธ
https://m.blog.naver.com/sssang97/221631319925
Rust 1.65๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ด๋‹ค.

Result์™€ Option ๋“ฑ์„ ์ด์šฉํ•ด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ผ์ด ์žฆ๋‹ค.

Option์„ ๊นŒ๋ณด๋‹ค๊ฐ€ ์žˆ์œผ๋ฉด ๊น ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๊ณ , ์—†๋‹ค๋ฉด ์˜ค๋ฅ˜๊ฐ’ ๋“ฑ์„ Option::None์ด๋‚˜ Result::Err๋ฅผ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ํƒˆ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ƒฅ ๋ณด๋ฉด ์ž˜ ์ž‘๋™ํ•˜๊ณ , ๊ดœ์ฐฎ์•„๋ณด์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ด๊ฑธ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ์ข€ ๋ถˆํŽธํ•˜๋‹ค.
์–ด์ฐจํ”ผ ๋‚ด๋ถ€ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฐ›์•„์˜ฌ ๊ฒƒ์ธ๋ฐ๋„ ๋ถ„ํ•ด์‹์œผ๋กœ x ๋ณ€์ˆ˜ ์ •์˜ํ•˜๊ณ , ๊ทธ๊ฑธ ๋ฆฌํ„ดํ•ด์„œ ๋ฐ›์•„์˜ค๊ณ ...

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๊ฒƒ์— ๋Œ€ํ•œ ํ•จ์ถ•์ ์ธ sugar ์‹ ํƒ์Šค๋กœ ๋‚˜์˜จ๊ฒŒ let-else๋ฌธ์ด๋‹ค.
์œ„์˜ ์ฝ”๋“œ๋ฅผ let-else๋กœ ๋ฐ”๊พธ๋ฉด ์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ๋œ๋‹ค.

ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
else๋ฌธ์—๋Š” ์ œ์–ด๊ถŒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋งŒ ์ ์ ˆํžˆ ์จ์ฃผ๋ฉด ๋œ๋‹ค.


์ฐธ์กฐ
https://doc.rust-lang.org/rust-by-example/flow_control/let_else.html
https://m.blog.naver.com/sssang97/222919165538