[Rust] ๊ตฌ์กฐ ๋ถํด(Destructuring)
๋ฌ์คํธ๋ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถํด ํ ๋น(Destructuering assignment)๋ผ๋ ํธ์๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
์ด๊ฒ ๋ญ๋ํ๋ฉด, ๋ฐฐ์ด ๋ฑ์ ๋ณตํฉํ์ ์ ์ง๊ด์ ์ด๊ณ ํธ๋ฆฌํ๊ฒ ๋ฐ๋ก ๊ฐ์์ ๋ณ์์ ์ชผ๊ฐ์ ํ ๋นํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด๋ค.
์ด ํฌ์คํธ์์ ์ผ๋ถ ์ฌ์ฉ์ฑ์ ์ค์ฌ์ผ๋ก ์ค๋ช
ํ๋ค๋ง, ์ฌ์ค ๋ด๋ถ์ ์ผ๋ก๋ ์ ๋ถ ๋ค ๋ฌ์คํธ 'ํจํด' ๋ฌธ๋ฒ์ ์ผ์ข
์ด๋ค.
๊ทผ๋ฐ ๊ทธ๊ฒ ์ค์ํ๊ฑด ์๋๋ ๋์ด๊ฐ์.
๋ฐฐ์ด ๋ถํด
let ๋ค ๋ณ์๋ช
๋ค์ ๋๊ดํธ๋ก ๋ฌถ๊ณ , ๋ฐฐ์ด์ ํ ๋น๋ฐ์ผ๋ฉด ๋๋ค. ๊ทธ๋ผ ๋ฐฐ์ด ๋ด ๊ฐ์ ์์๋๋ก ๊ฐ๊ฐ ํ ๋นํด์ค๋ค.


๊ทธ๋ฆฌ๊ณ ์๋๋ ๋ฐฐ์ด ๊ฐ์์ ๋ณ์ ๊ฐ์๋ฅผ ๋ง์ถฐ์ผํ๋๋ฐ, ๊ทผ๋ ๋ฒ์ ์์ ๊ฐ์ ๋์ด


..๋ก ๋น์๋ ๋ถ๋ถ์ ํ์ํด๋๊ณ ์ผ๋ถ๋ง ๋ฐ์ ์๋ ์๊ฒ ๋์๋ค.
์ด๊ฑด ๋ด์ฅ๋ฐฐ์ด๋ง ๋๊ณ ๋ฒกํฐ๊ฐ์๋ฐ๋ ๋ชป์ด๋ค.
ํํ ๋ถํด
ํํ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ชผ๊ฐ๋ฃ์ ์ ์๋ค.
๋ณ์๋ช
๋ค์ ์๊ดํธ๋ก ๋ฌถ๊ณ , ํํ๊ฐ์ ๋์
ํ๋ฉด ๋๋ค.


ํํ์ ๊ฒฝ์ฐ์ ํ์์๋ ๊ฐ์ _๋ฅผ ๋ฃ์ด์ ๋๊ฐ ๋นผ๋ ์ ์๋ค.


๊ตฌ์กฐ์ฒด ๋ถํด
์ผ๋ฐ์ ์ธ struct ๊ตฌ์กฐ์ฒด๋ค์๋ ๋ถํด๋ฅผ ๊ฐํ ์ ์๋ค. ๋ณ์๋ช
์ ํ์
๋ช
{...}๋ก ๊ฐ์ธ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด ๊ฐ์ฒด์ ๊ฐ์ด ๊ทธ๋๋ก ๋ค์ด๊ฐ ๊ฒ์ด๋ค.
์ ์ํ ์ ์, ๊ฐ ๋ณ์๋ช
์ ์ค์ ๊ตฌ์กฐ์ฒด์ ํ๋๋ช
๊ณผ ๋ง์ถฐ์ค์ผ ํ๋ค๋ ๊ฒ์ด๋ค.


๋ง์ฝ ๋ช๊ฐ๋ง ๊ณจ๋ผ์ฐ๊ณ ๋๋จธ์ง๋ ๋ฒ๋ฆฌ๊ณ ์ถ๋ค๋ฉด, ..๋ฅผ ๋ค์ ๋ถ์ด๋ฉด ๋๋ค.



๊ทธ๋ ๋ค.
์ฐธ์กฐ
https://doc.rust-lang.org/stable/rust-by-example/flow_control/match/destructuring/destructure_tuple.html
https://stackoverflow.com/questions/45782069/is-there-a-way-to-destructure-a-struct-partially