t_wの輪郭

Feedlyでフォローするボタン
Rust
HashMapの値を変更HashMapの値を取得HashMapに要素を追加std::collections::HashMapuse std::collections::HashMap;or_insertentryHashMapのキーに値がなかった時のみ値を挿入するHashMapを表示get_mutHashMap::new()HashMapの作成HashMap<K, V>

or_insert

2022/2/19 20:39:00

or_insertはキーに対する値への可変参照(&mut V)を返すので、変数に入れて操作できる。

let val = hashmap.entry(key).or_insert(value);
//{valを操作}

HashMapを表示

2022/2/19 20:28:00
println!("{:#?}", hashmap);      //pretty-print
println!("{:?}", hashmap);

HashMapの値を変更

2022/2/19 20:17:00

insertを2回使う

hashmap.insert(String::from("Blue"), 10);
hashmap.insert(String::from("Blue"), 50);
println!("{:?}", hashmap)       // {"Blue": 50}

もしくはget_mutを使う

let key = String::from("Blue");

if let Some(v) = hashmap.get_mut(&key) {
    *v=100;
}

if let Some(v) = hashmap.get(&key) {
    println!("{}", v);      //100
}

HashMapの値を取得

2022/2/19 18:38:00
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に要素を追加

2022/2/19 18:03:00
//hashmap.insert(key, value);
hashmap.insert(String::from("Blue"), 10);
hashmap.insert(String::from("Yellow"), 50);

HashMapの作成

2022/2/19 18:00:00
fn main() {
    use std::collections::HashMap;

    //let mut scores1 = HashMap::new();       //作成後にinsertがないとエラーになる
    let mut scores2:HashMap<String, u32> = HashMap::new();
}