[Rust] Option, Result ์‚ฌ์šฉ ํŒ

Option ์••์ถ•ํ•˜๊ธฐ
์ด๋ž˜์ €๋ž˜ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ์˜ต์…˜์ด ์ค‘์ฒฉ๋  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
์ด๋Ÿด๋•Œ๋Š” ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฒ—๊ฒจ๋‚ด๊ธฐ์—”... ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ฒˆ์žกํ•ด์ง„๋‹ค.

์•„๋ž˜์ฒ˜๋Ÿผ image

image

image

์ด๋Ÿด๋•Œ๋Š” flatten์œผ๋กœ ํ•˜๋‚˜์˜ ์˜ต์…˜์œผ๋กœ ์••์ถ•ํ•ด์„œ ๋‹จ๋ฒˆ์— ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
๋ชจ๋“  ๊ฒƒ์ด Some์ผ ๋•Œ๋งŒ Some์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. image

image

image

Result๋„ ์ด๋Ÿฐ๊ฒŒ ์žˆ๊ธดํ•œ๋ฐ unstable์ด๋”๋ผ.



Option์˜ ๋ฐฐ์—ด ์••์ถ•ํ•˜๊ธฐ
๋˜ ์—ฌ๋Ÿฌ๊ฐœ์˜ Option์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด๊ฐ’์„ ํ•œ๋ฒˆ์— ๋ฒ—๊ฒจ๋‚ด์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๋ชจ๋“  ์š”์†Œ๊ฐ€ ์œ ํšจํ•˜๋ฉด ์™„์ „ํžˆ ์œ ํšจํ•œ ๊ฑฐ๊ณ , ํ•˜๋‚˜๋ผ๋„ None์ด๋ฉด ์‹คํŒจ์ธ ๊ทธ๋Ÿฐ ๊ตฌ์กฐ๋กœ ๋ง์ด๋‹ค.

๊ทธ๋Ÿด๋•Œ๋Š” ์‚ฌ์‹ค... iterator๋ฅผ ๋ฝ‘์€ ๋’ค์— collect๋งŒ ์ž˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. image

image

image Option์— FromIterator ๋“ฑ์˜ ํŠธ๋ ˆ์ž‡์ด ์ž˜ ์ •์˜๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋งˆ์ˆ ์ด๋‹ค.

์ด๊ฑด Result์˜ ๊ฒฝ์šฐ์—๋„ ์ž˜ ๋™์ž‘ํ•œ๋‹ค. image

image

image



์ฐธ์กฐ
https://stackoverflow.com/questions/54777288/how-can-i-convert-a-vecoptiont-to-an-optionvect