이번 편의 목표: 책 종류별 하루 요율을 이름으로 저장하고 꺼냅니다.
HashMap은 키와 값의 쌍입니다. 표준 라이브러리의 std::collections에 있습니다. insert로 넣고 get으로 찾습니다. get은 없을 수 있으므로 Option을 돌려줍니다. 없는 키를 0원으로 보려면 unwrap_or를 씁니다.
use std::collections::HashMap;
fn main() {
let mut fees = HashMap::new();
fees.insert(String::from("종이책"), 100);
fees.insert(String::from("전자책"), 50);
let paper = fees.get("종이책").copied().unwrap_or(0);
println!("{}", paper * 3);
}출력은 300입니다. 키는 String이고, get에는 &str을 넘길 수 있습니다. copied는 참조 안의 i32를 복사해 Option<i32>로 만듭니다. 같은 키로 다시 insert하면 이전 값이 교체됩니다.
키의 순서는 넣은 순서가 아닙니다. 목록의 순서가 중요하면 10편의 Vec을 쓰고, 이름으로 찾을 때만 HashMap을 씁니다.
직접 해 보기
전자책을 꺼내 2일을 곱하세요. 출력은 100이어야 합니다.
해설
전자책의 하루 요율은 50입니다. 2일이면 100입니다. get에 넘기는 문자열은 전자책입니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.