Rust 简明教程

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)基于键值对的数据检索与快速查找

接下来,我们将更加详细地逐一剖析这些核心数据结构。