ํ์ ์ถ๋ก
๋ฌ์คํธ๋ ๋ณ์๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง๋ฅผ ๋ณด๊ณ ๊ทธ ๋ณ์์ ํ์ ์ ์ถ๋ก ํฉ๋๋ค:
fn takes_u32(x: u32) { println!("u32: {x}"); } fn takes_i8(y: i8) { println!("i8: {y}"); } fn main() { let x = 10; let y = 20; takes_u32(x); takes_i8(y); // takes_u32(y); }
์ด ์ฌ๋ผ์ด๋๋, ๋ฌ์คํธ ์ปดํ์ผ๋ฌ๊ฐ ๋ณ์๊ฐ ์ด๋ป๊ฒ ์ ์ธ๋์ด ์๊ณ , ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง๋ฅผ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ผ์์ ๋ณ์์ ํ์ ์ ์ถ๋ก ํ๋ ๋ชจ์ต์ ๋ณด์ฌ์ค๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์, ์ด๋ ๊ฒ ๋ช ์์ ์ธ ํ์ ์ ์๋ตํ๊ณ ์ ์ธ๋์๋ค๊ณ ํด์ โ์ด๋ค ํ์ โ์ด๋ผ๋ ๋ค ๋ด์ ์ ์๋ ํ์ ์ด ๋๋ ๊ฒ์ ์๋๋ผ๋ ์ ์ ๋๋ค. ๋ช ์์ ์ธ ํ์ ์ ์ธ์ด ์๋ ์๋, ์ปดํ์ผ๋ฌ๊ฐ ์์ฑํ ๋จธ์ ์ฝ๋๋ ๋์ผํฉ๋๋ค. ์ปดํ์ผ๋ฌ๋ ๋จ์ง ํ์ ์ ์ธ์ ์๋ตํ ์ ์๋๋ก ํด์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ ๊ฐ๊ฒฐํ ์ฝ๋๋ฅผ ์ธ ์ ์๋๋ก ๋์์ค ๋ฟ์ ๋๋ค.
์๋ ์ฝ๋๋, ์ ๋ค๋ฆญ ์ปจํ
์ด๋๋ฅผ ์ธ ๋ ์ปจํ
์ดํฐ ์์ ํฌํจ๋ ๋ฐ์ดํฐ์ ํ์
์ ๋ช
์์ ์ผ๋ก ์ฐ์ง ์๊ณ _
๋ก ๋์ฒดํ์ฌ๋ ๋๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค:
fn main() { let mut v = Vec::new(); v.push((10, false)); v.push((20, true)); println!("v: {v:?}"); let vv = v.iter().collect::<std::collections::HashSet<_>>(); println!("vv: {vv:?}"); }
collect
๋ HashSet
์ ๊ตฌํํ FromIterator
์ ์์กดํฉ๋๋ค.