HashMap
2022/2/19 17:17:00
or_insert
はキーに対する値への可変参照(&mut
V)を返すので、変数に入れて操作できる。
let val = hashmap.entry(key).or_insert(value);
//{valを操作}
hashmap.entry(key).or_insert(value);
https://doc.rust-jp.rs/book-ja/ch08-03-hash-maps.html#キーに値がなかった時のみ値を挿入する
println!("{:#?}", hashmap); //pretty-print
println!("{:?}", hashmap);
let key = String::from("Blue");
let value = hashmap.get(&key); //Option<&V>を返してくる
match value { //直接printlnできないのでmatchを使う
Some(v) => println!("{}", v),
None => (), //Noneが返ってくる場合も記述する必要がある(ないとコンパイルエラーが発生する)
}
if let Some(v) = value { //matchの代わりにif letを使うこともできる
println!("{}", v);
}
//hashmap.insert(key, value);
hashmap.insert(String::from("Blue"), 10);
hashmap.insert(String::from("Yellow"), 50);
fn main() {
use std::collections::HashMap;
//let mut scores1 = HashMap::new(); //作成後にinsertがないとエラーになる
let mut scores2:HashMap<String, u32> = HashMap::new();
}