Skip to content

标准库

Rust 的标准库(std)提供了一组核心模块和类型,用于处理各种常见的编程任务。标准库包含了基本类型、集合、文件 I/O、并发处理、错误处理等功能。

以下是一些重要的标准库模块及其功能介绍:

基本模块

  • std::prelude:预导入的模块,包含常用的类型和函数,可以直接使用而无需显式导入。
  • std::primitive:基本类型(如整数、浮点数、字符等)的相关功能。

集合类型

Rust 标准库提供了一些常用的集合类型,用于存储和操作数据。

  • std::vec::Vec:动态数组,可以存储可变数量的元素。

    let mut v = Vec::new();
    v.push(1);
    v.push(2);
    v.push(3);
  • std::collections::HashMap:哈希映射,用于存储键值对。

    use std::collections::HashMap;
    let mut map = HashMap::new();
    map.insert("key1", "value1");
    map.insert("key2", "value2");
  • std::collections::HashSet:哈希集合,用于存储唯一值的集合。

    use std::collections::HashSet;
    let mut set = HashSet::new();
    set.insert(1);
    set.insert(2);
    set.insert(3);

文件 I/O

Rust 标准库提供了文件输入/输出功能,用于读写文件和处理文件系统操作。

  • std::fs::File:用于文件操作。

    use std::fs::File;
    use std::io::prelude::*;
    let mut file = File::create("hello.txt").expect("Unable to create file");
    file.write_all(b"Hello, world!").expect("Unable to write to file");
  • std::fs:文件系统操作。

    use std::fs;
    let contents = fs::read_to_string("hello.txt").expect("Unable to read file");
    println!("{}", contents);

并发处理

Rust 标准库提供了多线程和并发编程的支持。

  • std::thread:用于创建和管理线程。

    use std::thread;
    let handle = thread::spawn(|| {
    for i in 1..10 {
    println!("Hello from the spawned thread! {}", i);
    thread::sleep(std::time::Duration::from_millis(1));
    }
    });
    for i in 1..5 {
    println!("Hello from the main thread! {}", i);
    thread::sleep(std::time::Duration::from_millis(1));
    }
    handle.join().unwrap();
  • std::sync:同步原语和线程安全的共享数据结构。

    use std::sync::{Mutex, Arc};
    use std::thread;
    let counter = Arc::new(Mutex::new(0));
    let mut handles = vec![];
    for _ in 0..10 {
    let counter = Arc::clone(&counter);
    let handle = thread::spawn(move || {
    let mut num = counter.lock().unwrap();
    *num += 1;
    });
    handles.push(handle);
    }
    for handle in handles {
    handle.join().unwrap();
    }
    println!("Result: {}", *counter.lock().unwrap());

错误处理

Rust 标准库提供了强大的错误处理机制,包括 ResultOption 类型。

  • std::result::Result:用于处理可能失败的操作。

    use std::fs::File;
    use std::io::{self, Read};
    fn read_username_from_file() -> Result<String, io::Error> {
    let mut file = File::open("hello.txt")?;
    let mut username = String::new();
    file.read_to_string(&mut username)?;
    Ok(username)
    }
  • std::option::Option:用于处理可能为空的值。

    let some_number = Some(5);
    let some_string = Some("a string");
    if let Some(x) = some_number {
    println!("The number is: {}", x);
    } else {
    println!("No number found");
    }

网络编程

Rust 标准库提供了基本的网络编程支持。

  • std::net:用于处理 TCP 和 UDP 网络通信。
    use std::net::TcpStream;
    use std::io::{self, Write};
    fn main() -> io::Result<()> {
    let mut stream = TcpStream::connect("127.0.0.1:8080")?;
    stream.write_all(b"Hello, world!")?;
    Ok(())
    }