Xen / reference v0.1.0-demo.2
std.hashmap
선택한 언어나 버전에는 이 주제가 없어 같은 영역의 시작 페이지를 표시합니다.
이 릴리스에 문서화된 API를 정리합니다.
use std.hashmap;문자열 키로 값을 찾을 때는 std.hashmap.HashMap<V>를 사용합니다. 다음을 hashmap.xen으로 저장하세요.
use std.hashmap as hashmap;
#![explc]fn main() { let mut prices = hashmap.new<Int>(); prices.insert("tea", 3); prices.insert("coffee", 4); let key = "tea"; println(match prices.get_cloned(&key) { Option.Some(price) => price, Option.None => 0, }); println(prices.len());}$ xen run hashmap.xen32| 작업 | API |
|---|---|
| 새 사전 | std.hashmap.new<V>() |
| 개수·비어 있음 | map.len(), map.is_empty() |
| 추가·변경 | map.insert(key, value); 이전 값이 있으면 Some으로 반환 |
| 검색 | map.get_cloned(&key); 값의 사본을 Option으로 반환 |
| 존재 확인 | map.contains_key(&key) |
| 제거 | map.remove(&key); 제거한 값을 Option으로 반환 |
| 키 목록 | map.keys(); 독립적인 Vec<String> |
| 비우기 | map.clear() |
| 소유권을 넘기고 반복 | map.into_iter(); (String, V) 항목 |
사전 자체는 이동 전용입니다. get_cloned는 Box·File처럼 복사할 수 없는 값을 읽을 때 쓸 수 없습니다. 그런 값은 remove로 꺼내거나 std.hashmap.with_value<V, R>(&map, &key, inspect)의 이름 있는 fn(&V) -> R 콜백으로 확인하세요. 참조를 직접 넘기는 함수에는 explc가 필요합니다. 키 목록과 반복의 순서는 보장하지 않습니다. 사전의 필드를 직접 변경하는 대신 API를 사용하세요.