```html
1.1.
1.2.
1.3.
标准库 Rust:完整概述
标准库 Rust (std) 是一组基础模块,为开发者提供创建可靠、快速且安全的应用程序所需的一切。与许多其他语言不同,Rust 特别关注内存安全以及无需垃圾回收的并发性。在本文中,我们将通过代码示例详细解析 std 的关键组件。
1. 标准库的主要模块
该库分为几个逻辑组。让我们来看看其中最重要的部分。
1.1. std::collections 模块
包含用于存储和管理元素集合的数据结构。最常用的有:
Vec<T>— 动态数组(类似于 Java 中的ArrayList)。HashMap<K, V>— 用于存储键值对的哈希表。HashSet<T>— 唯一值的集合。BTreeMap和BTreeSet— 基于红黑树的有序集合。
use std::collections::HashMap;
fn main() { let mut scores = HashMap::new(); scores.insert(String::from("Alice"), 100); scores.insert(String::from("Bob"), 90);
for (name, score) in &scores { println!("{}: {}", name, score); }}1.2. std::io 模块
负责输入输出:键盘读取、文件操作、缓冲输入/输出。关键 trait:Read 和 Write。
use std::io::{self, BufRead};
fn main() -> io::Result<()> { let stdin = io::stdin(); for line in stdin.lock().lines() { println!("Вы ввели: {}", line?); } Ok(())}1.3. std::thread 模块
允许创建和管理执行线程。Rust 通过所有权系统和 Send 和 Sync trait 保证线程间的数据安全。
use std::thread;
fn main() { let handle = thread::spawn(|| { for i in 1..10 { println!("Поток: {}", i); } });
for i in 1..5 { println!("Главный поток: {}", i); }
handle.join().unwrap();}2. 字符串和文本处理
Rust 中有两种字符串类型:
String— 可变的、拥有所有权的字符串(存储在堆上)。&str— 不可变的字符串切片(对 UTF-8 序列的引用)。
fn main() { let mut hello = String::from("Привет, "); hello.push_str("мир!"); println!("{}", hello); // Вывод: Привет, мир!
let slice: &str = &hello[0..6]; println!("Срез: {}", slice); // Вывод: Привет}3. 错误处理
Rust 使用两个枚举来代替异常:
Option<T>— 用于值可能不存在的情况(Some或None)。Result<T, E>— 用于可能失败的操作(Ok或Err)。
use std::fs::File;use std::io::Read;
fn read_file(path: &str) -> Result<String, std::io::Error> { let mut file = File::open(path)?; let mut contents = String::new(); file.read_to_string(&mut contents)?; Ok(contents)}
fn main() { match read_file("test.txt") { Ok(content) => println!("Содержимое: {}", content), Err(e) => eprintln!("Ошибка: {}", e), }}4. 迭代器和闭包
Rust 中的迭代器是惰性的且功能强大。它们允许在没有显式循环的情况下处理数据序列。
fn main() { let numbers = vec![1,
```