<blockquote> <p>๋ด์ฉ์ ๋ํ ์ถ์ฒ: <a href="https://stackoverflow.com/a/66364221/13160750">https://stackoverflow.com/a/66364221/13160750</a></p> </blockquote> <p><img src="https://blog.atj.sh/post-attachments/v/0194e4fa-e3f6-7441-a8cf-6e0824170dc9" alt="env::var("tableName").expect("failed to resolve table") ๋ผ๋ ๋ด์ฉ์ Rust ์์ค์ฝ๋." width="100%"></p> <p>Rust ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด, ์ ์คํฌ๋ฆฐ์ท์ฒ๋ผ <code>Result</code>๋ <code>Option</code> enum์ <code>.expect</code> ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค.</p> <p>expect ๋ฉ์๋๋ ํด๋น enum์ด <code>Option::Some</code>์ด๋ฉด ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌํดํ๋ค. ๋ฐ๋๋ก <code>Option::None</code>์ด๋ฉด .expect์ ์ธ์ ๋ด์ฉ์ ๊ฐ์ง๊ณ ํจ๋์ ์ผ์ผํจ๋ค.</p> <p>๊ทธ๋ฐ๋ฐ ์ <strong>๋ฉ์๋ ์ด๋ฆ</strong>์ด ํํ .expect์ผ๊น? </p> <p>๋ญ ๊ธฐ๋ํ๋ค๋ ๊ฑธ๊น? ํ๋ก๊ทธ๋๋จธ๋ก์จ๋ ๋ฉ์๋๋ก๋ถํฐ ํจ๋์ด ์๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ํ ํ ๋ฐ...</p> <p>Rust The Book์ด๋ <code>Result</code>, <code>Option</code> enum์ ์ค๋ช ๋ฌธ์์๋ expect์ ์ด๋ฆ์ ๊ธฐ์์ ์ฐพ์ ์ ์์๋ค.</p> <p>๋ค๋ง, <a href="https://stackoverflow.com/a/66364221/13160750">Stack Overflow</a>์์ ์ ๋น์ฑ ์๋ ์๊ฒฌ์ ์ฐพ์ ์ ์์๋ค. <strong>Rust ์ปดํ์ผ๋ฌ์ ๊ฐ๋ฐ ๊ณผ์ ์์์ expect ๋ฉ์๋์ ๊ธฐ์์ ์ฐพ์ ์ ์๋ค</strong>๋ ๋ด์ฉ์ด๋ค.</p> <blockquote> <p>Rust ์ธ์ด์ ๊ณต์ <strong>์ปดํ์ผ๋ฌ</strong>์ธ <code>rustc</code>์ ์์ค์ฝ๋๋ฅผ ํตํด, <code>.expect</code> ๋ฉ์๋์ ๊ธฐ์์ ์ถ์ธกํ ์ ์๋ค.</p> <p>rustc <strong>์ปดํ์ผ๋ฌ์ ์์ค์ฝ๋</strong>์ <code>Option</code> struct ์ชฝ ์์ค์ฝ๋์๋ expect์ ๋น์ทํ ์ญํ ์ ํ๋ ํจ์๊ฐ ์ด์ ๋ถํฐ ์กด์ฌํ๋ค.</p> <p>๊ทธ ํจ์๋ </p> <ul> <li><code>expect(p, token::SEMI)</code> (= "SEMI" ํ ํฐ์ด parse๋๊ธฐ๋ฅผ ์์ํ๊ธฐ)</li> <li><code>expect_word(p, "let")</code> (= "let" ํค์๋๊ฐ parse๋๊ธฐ๋ฅผ ์์ํ๊ธฐ)</li> </ul> <p>...์ ๊ฐ์ ๊ผด๋ก ์ฐ์๋ค. ๋ง์ฝ ์์ํ ๋๋ก parse๋์ง ์์ผ๋ฉด, ์ปดํ์ผ์ ์คํจ์ํค๊ณ "'let' ํค์๋๋ฅผ <strong>์์ํ์</strong>" (<code>expected keyword 'let'</code>) ๋ผ๋ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๋์ก๋ค.</p> <p>์ฐธ์ผ๋ก ์ ์ฉํ๋ ์ด ํจ์๋ ์ด๋ฆ์ ์ ์งํ ์ฑ ๊ธฐ๋ฅ์ด "<code>Option</code> ๋ณ์๊ฐ <code>Some</code>์ธ์ง" ํ์ธํ๋ ์ชฝ์ผ๋ก ๋ฐ๋์๊ณ , ๊ฒฐ๊ตญ์๋ Option์ ๋ฉ์๋๊ฐ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ , ํ์ฌ๊น์ง ์ ์ง๋์๋ค.</p> </blockquote> <p>... ์ฆ, (๊ตณ์ด Rust๊ฐ ์๋๋๋ผ๋) ์ปดํ์ผ๋ฌ ๊ตฌ๋ฌธ ํด์ ์ค๋ฅ๋ก ํํ ๋ณผ ์ ์๋ ๊ด์ฉ ๋ฌธ๊ตฌ์ธ <code>expected keyword 'let'</code> ์๋ฌ๋ฅผ ์ปดํ์ผ๋ฌ์์ ์ฒ๋ฆฌํ๊ณ ๊ตฌํํ๋ ๋ฐ, ๋ ์์ฐ์ค๋ฝ๊ฒ ์ฝ๋๊ฐ ์ฝํ ์ ์๋๋ก <code>expect</code>๋ผ๋ ๋จ์ด๋ฅผ ์ฐจ์ฉํ ๊ฒ์ด์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๊ตณ์ด์ง ๊ฒ์ด๋ค.</p> <p>Stack Overflow์ ์ ๊ธ์์๋ "(expect ๋ฉ์๋์ ์ง๋ ๊ณผ์ ๋ค์ ๋ดค์ ๋) ๊ฐ์ธ์ ์ผ๋ก expect๋ผ๋ ์ด๋ฆ์ด ์ ๋ณ๋ ์ด๋ฆ๊น์ง๋ ์๋ ๊ฒ ๊ฐ๋ค. ์์ฐ์ค๋ฌ์ด ์ด๋ฆ์ฒ๋ผ ๋ณด์ธ๋ค."๋ผ๋ ์ด๋ฆ ํ๊ฐ๋ฅผ ๋ง๋ฏธ์์ ํ์ธํ ์ ์๋ค. ๋๋ ์ด ํ๊ฐ์ ๋์ํ๋ ํธ์ด๋ค.</p>