Rust 学习笔记 12:常用集合 (Collections)
Rust 学习笔记 12:常用集合 (Collections) “Data structures are the backbone of any program.” Rust 标准库提供了一系列非常实用的集合数据结构。和数组/元组不同,它们的数据存储在堆 (Heap) 上,这意味着长度可以动态变化。 如果你有 Go 语言背景,可以这样类比: Vec<T> ≈ Slice []T String ≈ string (但在 Rust 中它是可变的) HashMap<K, V> ≈ Map map[K]V 1. Vector (动态数组) Vector 是最常用的集合。 1let mut v: Vec<i32> = Vec::new(); 2v.push(1); 3v.push(2); 4v.push(3); 或者使用 vec! 宏: 1let v = vec![1, 2, 3]; 访问元素: 有两种方式,一种是索引 &v[2](越界会 Panic),一种是 v.get(2)(返回 Option<&T>)。在 Rust 中,推荐尽可能用 get 来安全处理越界。 借用规则陷阱: 当你持有一个元素的引用时,不能往 Vector 里 push 新元素! 原因:push 可能会导致 vector 扩容(重新分配内存),如果你手里还攥着旧内存的引用,那就是悬垂指针了。Rust 编译器会死死盯着你。 ...