附录 C: Rust 标准库核心模块速览
听
Rust 标准库(std)提供了构建系统级和应用级程序所需的基础组件,无需外部依赖即可完成大多数通用任务。以下列出开发者最常接触的核心模块及其主要用途。
std::collections
提供常用的数据结构:
Vec<T>:可变长数组;HashMap<K, V>:基于哈希表的键值映射;HashSet<T>:无序不重复集合;BTreeMap<K, V>/BTreeSet<T>:基于 B 树的有序映射/集合;LinkedList<T>、VecDeque<T>:双端队列等。
这些类型均支持泛型,并实现了常见的 trait(如 Clone、Debug、IntoIterator)。
std::io
处理输入输出操作:
Read和Writetrait:定义读写行为;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::sync 与 std::thread
并发原语:
Arc<T>:原子引用计数,用于多线程共享所有权;Mutex<T>/RwLock<T>:互斥锁与读写锁;thread::spawn():创建新线程;mpsc(multi-producer, single-consumer)通道:线程间通信。
注意:异步编程通常使用 tokio 或 async-std,而非 std::thread。
std::fmt
控制格式化输出:
Display与Debugtrait:分别用于用户友好和调试输出;format!/println!宏基于此模块;- 可自定义结构体的格式化行为。
std::error 与 std::result
错误处理基础:
Result<T, E>:表示可能失败的操作;Errortrait:自定义错误类型应实现的标准接口;- 鼓励使用组合式错误处理(如
thiserror、anyhow库)。
std::option
表示可能存在或缺失的值:
Option<T>枚举:Some(T)或None;- 提供
map、and_then、unwrap_or等方法进行安全链式操作; - 是避免空指针的核心机制。
std::iter
迭代器工具:
- 所有集合类型实现
IntoIterator; - 提供
map、filter、fold、collect等高阶函数; - 迭代器是惰性的,仅在消费时执行。
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:内存操作(如swap、forget、size_of)。
小结
Rust 标准库设计精简而强大,强调零成本抽象和内存安全。虽然生态中有大量第三方 crate 提供更高级功能(如异步 I/O、序列化),但理解 std 的核心模块是编写健壮 Rust 程序的基础。建议在开发中优先查阅标准库文档(doc.rust-lang.org/std),充分利用其提供的工具。
#Rust 入门教程
分享于 5 天前
上一篇:附录 B: 常用 Cargo 命令速查
下一篇:附录 D: 推荐学习资源