Rust 数据结构
1. 数据结构
在 Rust 中,数据结构主要用于存储和组织数据值。
Rust 提供了丰富的内置数据结构。每种数据结构都有其独特的数据处理与内存管理方式。
一些最常见的数据结构包括:
- 数组 (Array)
- 向量 (Vector / Vec)
- 元组 (Tuple)
- 哈希映射 (HashMap)
在后续章节中,我们将深入探讨它们的底层细节。不过现在,我们先为您提供一个关于它们的快速入门概览。
2. 数组 (Arrays)
Rust 中的数组(Array)是一个大小固定的列表,且其中所有的值都必须属于相同的类型。
一旦数组被创建,您就无法再动态增加或缩小它的尺寸。
要访问数组中的某个元素,您需要引用它的索引号。数组的索引从 0 开始:[0] 代表第一个元素,[1] 代表第二个元素,依此类推。
示例
let fruits = ["apple", "banana", "orange"];
println!("Last fruit: {}", fruits[2]);3. 向量 (Vectors)
向量(Vector)是一种大小可变的动态数组。与常规的静态数组不同,向量的尺寸可以随着数据的添加或移除动态地增长或缩小。
示例
let mut fruits = vec!["apple", "banana"];
fruits.push("cherry");
println!("Last fruit: {}", fruits[2]);4. 元组 (Tuples)
元组(Tuple)可以容纳多个不同类型的值。当您需要将各种不同类型的数据组合成一个单一的复合结构时,它非常有用。
您可以使用点号(.)配合索引号来访问元组内的特定元素,例如 person.1 等:
示例
let person = ("John", 30, true);
println!("Name: {}", person.0);
println!("Age: {}", person.1);
println!("Is active: {}", person.2);5. 哈希映射 (HashMaps)
哈希映射(HashMap)用于存储键值对(key-value pairs)。它允许您通过一个特定的“键(key)”来快速查找对应的“值(value)”。
要使用 HashMap,您必须首先从 Rust 的标准库中将其导入。
示例
// 导入 HashMap
use std::collections::HashMap;
fn main() {
let mut capitalCities = HashMap::new();
capitalCities.insert("France", "Paris");
capitalCities.insert("Japan", "Tokyo");
println!("Capital of Japan is {}", capitalCities["Japan"]);
}6. 数据结构概览
| 数据结构 | 典型应用场景 | 尺寸是否可变? |
|---|---|---|
| 数组 (Array) | 存储大小固定的同类型值列表 | 否 |
| 向量 (Vector/Vec) | 存储长度可动态变化的同类型值列表 | 是 |
| 元组 (Tuple) | 将不同类型的值组合为一个复合整体 | 否 |
| 哈希映射 (HashMap) | 基于键值对的数据检索与快速查找 | 是 |
接下来,我们将更加详细地逐一剖析这些核心数据结构。