集合类型 Vec/HashMap
Vec 动态数组 push/pop、HashMap 插入/entry API、遍历
集合类型 Vec/HashMap
Vec<T> 是动态数组,HashMap<K,V> 是哈希表——Rust 最常用的两个集合。
学完本章你将: 掌握 Vec push/pop、HashMap 插入/entry API、遍历。
Vec
rust
fn main() {
// 创建
let mut v: Vec<i32> = Vec::new();
let mut v2 = vec![1, 2, 3]; // vec! 宏
// 增删
v.push(1); v.push(2); v.push(3);
let last = v.pop(); // Some(3)
// 访问
let third = &v[2]; // 越界会 panic
let third = v.get(2); // 返回 Option<&T>
// 遍历
for i in &v {
println!("{}", i);
}
// 修改
for i in &mut v {
*i += 10; // 解引用修改
}
}
HashMap
rust
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert(String::from("数学"), 92);
scores.insert(String::from("语文"), 88);
// entry API —— 只在不存在时插入
scores.entry(String::from("英语")).or_insert(85);
scores.entry(String::from("数学")).or_insert(0); // 不覆盖 92
// 访问
let score = scores.get("数学"); // Some(&92)
// 遍历
for (key, value) in &scores {
println!("{}: {}", key, value);
}
}