HashMap
HashDoS ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธ๋๋ ํ์ค ํด์ ๋งต์ ๋๋ค:
use std::collections::HashMap; fn main() { let mut page_counts = HashMap::new(); page_counts.insert("ํํด๋ฒ ๋ฆฌ ํ์ ๋ชจํ".to_string(), 207); page_counts.insert("๊ทธ๋ฆผ ๋ํ".to_string(), 751); page_counts.insert("์ค๋ง๊ณผ ํธ๊ฒฌ".to_string(), 303); if !page_counts.contains_key("๋ ๋ฏธ์ ๋ผ๋ธ") { println!( "{}์ ์ฑ ์ ์๊ณ ์์ง๋ง ๋ ๋ฏธ์ ๋ผ๋ธ์ ์์ง ๋ชปํฉ๋๋ค.", page_counts.len() ); } for book in ["์ค๋ง๊ณผ ํธ๊ฒฌ", "์ด์ํ ๋๋ผ์ ์จ๋ฆฌ์ค"] { match page_counts.get(book) { Some(count) => println!("{book}: {count}ํ์ด์ง"), None => println!("{book}์(๋ฅผ) ์ ์ ์์ต๋๋ค."), } } // ๊ฐ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ .entry() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ฝ์ ํฉ๋๋ค. for book in ["์ค๋ง๊ณผ ํธ๊ฒฌ", "์ด์ํ ๋๋ผ์ ์จ๋ฆฌ์ค"] { let page_count: &mut i32 = page_counts.entry(book.to_string()).or_insert(0); *page_count += 1; } println!("{page_counts:#?}"); }
-
HashMap
์ prelude์ ์ ์๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋ช ์์ ์ผ๋ก ์ถ๊ฐํด์ค์ผ ํฉ๋๋ค. -
์๋ ์ฝ๋๋ฅผ ํ ์คํธํด๋ณด์ธ์. ์ฒซ ๋ฌธ์ฅ์์๋ ํด์๋งต์ ์ฑ ์ด ์๋์ง ๊ฒ์ฌํ์ฌ, ์์ผ๋ฉด ๋ํดํธ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋๋ฒ ์งธ ๋ฌธ์ฅ์์๋ ํด์๋งต์ ํด๋น ์ฑ ์ด ์๋ ๊ฒฝ์ฐ, ์ง์ ํ ๊ฐ์ ํด์๋งต์ ์ถ๊ฐํ ๋ค ๊ทธ ๊ฐ์ ๋ฐํํฉ๋๋ค.
let pc1 = page_counts .get("ํด๋ฆฌ ํฌํฐ์ ๋ง๋ฒ์ฌ์ ๋") .unwrap_or(&336); let pc2 = page_counts .entry("ํ๊ฑฐ๊ฒ์".to_string()) .or_insert(374);
-
์ํ๊น์ง๋ง
hashmap!
๊ฐ์ ๋งคํฌ๋ก๊ฐ ์์ต๋๋ค.-
๋ฌ์คํธ 1.56๋ถํฐ๋
HashMap
์ดFrom<[(K, V); N]>
์ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ ์ด์ฉํ์ฌ ์ฝ๊ฒ ํด์๋งต์ ์ด๊ธฐํํ ์ ์์ต๋๋ค:let page_counts = HashMap::from([ ("ํด๋ฆฌ ํฌํฐ์ ๋ง๋ฒ์ฌ์ ๋".to_string(), 336), ("ํ๊ฑฐ๊ฒ์".to_string(), 374), ]);
-
-
ํค-๊ฐ ์์ ๋ํ
Iterator
๋ก ํด์๋งต์ ๋ง๋ค ์๋ ์์ต๋๋ค. -
์์ ์ฝ๋์์๋ ํธ์์ ํด์๋งต์ ํค๋ก
&str
๋ฅผ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ๋ฌผ๋ก ์ปฌ๋ ์ ์ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ค๋ง ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋น๋ฆผ ๊ฒ์ฌ๊ธฐ ๋๋ฌธ์ ๋ณต์กํด ์ง ์ ์์ต๋๋ค.- ์์ ์ฝ๋์์
to_string()
์ ์์ ๋ ์ปดํ์ผ์ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํด๋ณด์ธ์. ์ด๋ค ๋ฌธ์ ์ ๋ถ๋ชํ๊น์?
- ์์ ์ฝ๋์์
-
ํด์๋งต์ ๋ช ๋ช ๋ฉ์๋๋ ํด์๋งต ๋ด๋ถ์ ํน๋ณํ ํ์ (์๋ฅผ ๋ค์ด
std::collections::hash_map::Keys
)๋ค์ ๋ฆฌํดํฉ๋๋ค. ์ด๋ฌํ ํ์ ๋ค์ Rust ๋ฌธ์์์๋ ๊ฒ์ํ ์ ์์ต๋๋ค. ์๊ฐ์๋ค์๊ฒ ์ด ํ์ ๋ค์ ๋ํ ๋ฌธ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ์ด ๋ฌธ์์keys
๋ฉ์๋๋ก์ ์ญ ๋งํฌ๊ฐ ์์์ ์๋ ค์ฃผ์ธ์.