[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