附录 C: Rust 标准库核心模块速览

Rust 标准库(std)提供了构建系统级和应用级程序所需的基础组件,无需外部依赖即可完成大多数通用任务。以下列出开发者最常接触的核心模块及其主要用途。

std::collections

提供常用的数据结构:

  • Vec<T>:可变长数组;
  • HashMap<K, V>:基于哈希表的键值映射;
  • HashSet<T>:无序不重复集合;
  • BTreeMap<K, V> / BTreeSet<T>:基于 B 树的有序映射/集合;
  • LinkedList<T>VecDeque<T>:双端队列等。

这些类型均支持泛型,并实现了常见的 trait(如 CloneDebugIntoIterator)。

std::io

处理输入输出操作:

  • ReadWrite trait:定义读写行为;
  • BufReader / BufWriter:带缓冲的读写器;
  • stdin() / stdout() / stderr():标准流;
  • Result 类型别名 io::Result<T>,用于简化 I/O 错误处理。

std::fs

文件系统操作:

  • File::open() / File::create():打开或创建文件;
  • read_to_string() / write():便捷读写整个文件;
  • create_dir() / remove_file() 等目录与文件管理函数。

所有操作返回 io::Result,需显式处理错误。

std::path

平台无关的路径操作:

  • Path:表示文件系统路径(不可变);
  • PathBuf:可变路径,支持拼接(如 path.join("file.txt"));
  • 提供跨平台路径分隔符处理,避免硬编码 /\

std::env

访问环境信息:

  • args():获取命令行参数;
  • var("KEY"):读取环境变量;
  • current_dir() / set_current_dir():获取或设置当前工作目录;
  • temp_dir():获取系统临时目录。

std::time

时间相关功能:

  • Duration:表示时间间隔;
  • Instant:单调时钟,用于测量耗时(不受系统时间调整影响);
  • SystemTime:系统时钟,表示自 Unix epoch 起的时间点。

std::syncstd::thread

并发原语:

  • Arc<T>:原子引用计数,用于多线程共享所有权;
  • Mutex<T> / RwLock<T>:互斥锁与读写锁;
  • thread::spawn():创建新线程;
  • mpsc(multi-producer, single-consumer)通道:线程间通信。

注意:异步编程通常使用 tokioasync-std,而非 std::thread

std::fmt

控制格式化输出:

  • DisplayDebug trait:分别用于用户友好和调试输出;
  • format! / println! 宏基于此模块;
  • 可自定义结构体的格式化行为。

std::errorstd::result

错误处理基础:

  • Result<T, E>:表示可能失败的操作;
  • Error trait:自定义错误类型应实现的标准接口;
  • 鼓励使用组合式错误处理(如 thiserroranyhow 库)。

std::option

表示可能存在或缺失的值:

  • Option<T> 枚举:Some(T)None
  • 提供 mapand_thenunwrap_or 等方法进行安全链式操作;
  • 是避免空指针的核心机制。

std::iter

迭代器工具:

  • 所有集合类型实现 IntoIterator
  • 提供 mapfilterfoldcollect 等高阶函数;
  • 迭代器是惰性的,仅在消费时执行。

std::convert

类型转换 trait:

  • From / Into:用于无损转换(自动实现互逆);
  • AsRef / AsMut:廉价引用转换(如 &String&str);
  • TryFrom / TryInto:可能失败的转换。

其他重要模块

  • std::process:启动子进程、退出程序(exit());
  • std::net:TCP/UDP 套接字(同步阻塞式,异步场景建议用 tokio::net);
  • std::panic:处理 panic 行为(如 catch_unwind);
  • std::mem:内存操作(如 swapforgetsize_of)。

小结

Rust 标准库设计精简而强大,强调零成本抽象和内存安全。虽然生态中有大量第三方 crate 提供更高级功能(如异步 I/O、序列化),但理解 std 的核心模块是编写健壮 Rust 程序的基础。建议在开发中优先查阅标准库文档(doc.rust-lang.org/std),充分利用其提供的工具。

#Rust 入门教程 分享于 5 天前

内容由 AI 创作和分享,仅供参考