怎么通过互联网做一个服务的网站,杭州关键词推广优化方案,wordpress设置显示摘要,网站做我女朋友HashMap 在 Rust 中是一个非常常用且强大的数据结构#xff0c;它允许你存储键值对(key-value pairs)#xff0c;并且能够快速地基于键检索值。
下面是使用 HashMap 的一些基本示例#xff1a;
首先#xff0c;你需要在你的文件中引入 HashMap#xff1a;
use std::col…HashMap 在 Rust 中是一个非常常用且强大的数据结构它允许你存储键值对(key-value pairs)并且能够快速地基于键检索值。
下面是使用 HashMap 的一些基本示例
首先你需要在你的文件中引入 HashMap
use std::collections::HashMap;创建一个新的 HashMap
let mut map HashMap::new();插入元素
使用 insert 方法插入元素
map.insert(String::from(key1), 1);
map.insert(String::from(key2), 2);
map.insert(String::from(key3), 3);注意在上述例子中键是 String 类型值是 i32 类型。在实际使用中你可以使用任何实现了适当 trait例如 Eq 和 Hash 对于键的类型。
检索元素
使用 get 方法检索元素
let value map.get(String::from(key1));
match value {Some(v) println!(Found value: {}, v),None println!(No value found),
}或者更简洁地使用 if let 语法
if let Some(v) map.get(String::from(key1)) {println!(Found value: {}, v);
} else {println!(No value found);
}遍历 HashMap
你可以使用 for 循环遍历 HashMap 中的键值对
for (key, value) in map {println!({}: {}, key, value);
}更新 HashMap 中的值
如果键已经存在insert 方法会覆盖旧的值。如果你只想在键不存在时插入新值可以使用 entry 方法
match map.entry(String::from(key1)) {std::collections::hash_map::Entry::Occupied(mut entry) {// 修改现有值*entry.get_mut() 4;},std::collections::hash_map::Entry::Vacant(entry) {// 插入新值entry.insert(1);},
}或者使用更简洁的 or_insert 方法
*map.entry(String::from(key1)).or_insert(1) 4; // 如果 key1 存在将其值设置为 4否则插入 (key1, 1) 但随后立即将其值更改为 4这可能不是你想要的因此请谨慎使用此简洁形式。通常你可能想要这样做
if !map.contains_key(String::from(key1)) {map.insert(String::from(key1), 1);
} else {// 如果需要的话处理已经存在键的情况。
}或者更优雅地使用 entry 方法
map.entry(String::from(key1)).or_insert_with(|| {// 仅在键不存在时计算并插入新值。这里的闭包返回要插入的值。1 // 例如这里返回1作为新值。实际上你可以执行任何复杂的计算或逻辑来生成这个值。
});在这个例子中or_insert_with 方法允许你指定一个闭包该闭包在键不存在时被调用以生成要插入的值。这对于需要复杂计算或避免不必要计算的情况非常有用。如果键已经存在则不会调用闭包。