12.映射表map.rs
生活随笔
收集整理的這篇文章主要介紹了
12.映射表map.rs
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/* 映射表*/use std::collections::HashMap;fn test_1() {println!("-------------------------test_1-------------------------");let mut map = HashMap::new(); //這里沒有聲明散列表的泛型,是因為 Rust 的自動判斷類型機制。map.insert("color", "red");map.insert("size", "10 m^2");println!("{}", map.get("color").unwrap());//這種用法必須保證key必須存在,否則直接panicprintln!("{}", map["color"]);//支持迭代器for i in &map {println!("{}->{}", i.0, i.1);}for i in map.iter() {println!("{:?}", i);println!("{:?}------>>>>>>>{:?}", i.0,i.1);}//移除map.remove("size");//支持迭代器for i in &map {println!("{}->{}", i.0, i.1);}
}//當使用 insert 方法添加新的鍵值對的時候,如果已經存在相同的鍵,會直接覆蓋對應的值
//如果你想"安全地插入",就是在確認當前不存在某個鍵時才執行的插入動作,
fn test_2() {println!("-------------------------test_2-------------------------");let mut map = HashMap::new();map.insert("color", "red");map.insert("size", "10 m^2");map.entry("color").or_insert("red"); //這句話的意思是如果沒有鍵為 "color" 的鍵值對就添加它并設定值為 "red",否則將跳過。
}//在已經確定有某個鍵的情況下如果想直接修改對應的值,有更快的辦法:
fn test_3() {println!("-------------------------test_3-------------------------");let mut map = HashMap::new();map.insert("color", "red");if let Some(x) = map.get_mut(&"color2") {*x = "green";}if HashMap::contains_key(&map, "color2"){println!("contain key color");} else {println!("not contain key color2");}//這種直接賦值的方式則不可以//map["color"]="yello";for i in map.iter() {println!("{:?}", i);}
}fn main() {test_1();test_2();test_3();
}
?
總結
以上是生活随笔為你收集整理的12.映射表map.rs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11.向量vector.rs
- 下一篇: 13.迭代器.rs