官术网_书友最值得收藏!

  • Mastering Rust
  • Rahul Sharma Vesa Kaihlavirta
  • 230字
  • 2021-07-02 13:35:17

Hashmaps

Rust also provides us with maps, which can be used to store key-value data. They come from the std::collections module and are named HashMap. They are created with the HashMap::new constructor function:

// hashmaps.rs

use std::collections::HashMap;

fn main() {
let mut fruits = HashMap::new();
fruits.insert("apple", 3);
fruits.insert("mango", 6);
fruits.insert("orange", 2);
fruits.insert("avocado", 7);
for (k, v) in &fruits {
println!("I got {} {}", v, k);
}

fruits.remove("orange");
let old_avocado = fruits["avocado"];
fruits.insert("avocado", old_avocado + 5);
println!("\nI now have {} avocados", fruits["avocado"]);
}

In the preceding code, we created a new HashMap called fruits. We then insert some fruits into our fruits map, along with their count, using the insert method. Following that, we iterate over the key value pairs using for loop, where in we take a reference to our fruit map by &fruits, because we only want read access to the key and value. By default, the value will be consumed by the for loop. The for loop in this case returns a two field tuple ((k ,v)). There are also seperate methods keys() and values() available to iterate over just keys and values, respectively. The hashing algorithm used for hashing the keys of the HashMap type is based on the Robin hood open addressing scheme, but can be replaced with a custom hasher depending on the use case and performance. That's about it.

Next, let's look at slices.

主站蜘蛛池模板: 台北县| 渝中区| 会理县| 铜梁县| 招远市| 临桂县| 八宿县| 重庆市| 资源县| 娄烦县| 荣成市| 芜湖县| 宁安市| 稷山县| 嫩江县| 五常市| 清水县| 阿拉善右旗| 保山市| 太白县| 玉龙| 卓资县| 安达市| 南康市| 永春县| 白山市| 阳曲县| 伊吾县| 平山县| 巴林右旗| 微博| 曲靖市| 宽城| 镇坪县| 富顺县| 阜宁县| 南华县| 丰城市| 彰武县| 法库县| 茶陵县|