- 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.
- OpenStack Cloud Computing Cookbook(Third Edition)
- 黑客攻防從入門到精通(實戰秘笈版)
- Learning NServiceBus(Second Edition)
- Spring Boot開發與測試實戰
- Spring 5.0 By Example
- Linux網絡程序設計:基于龍芯平臺
- PostgreSQL 11從入門到精通(視頻教學版)
- 蘋果的產品設計之道:創建優秀產品、服務和用戶體驗的七個原則
- Visualforce Developer’s guide
- LabVIEW虛擬儀器入門與測控應用100例
- Visual Basic程序設計全程指南
- Qt 4開發實踐
- 編程的原則:改善代碼質量的101個方法
- Java Web程序開發參考手冊
- Scala實用指南