泛型基础 #

一、泛型函数 #

rust
fn largest<T: PartialOrd>(list: &[T]) -> &T {
    let mut largest = &list[0];
    
    for item in list {
        if item > largest {
            largest = item;
        }
    }
    
    largest
}

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    println!("最大: {}", largest(&numbers));
    
    let chars = vec!['a', 'b', 'c'];
    println!("最大: {}", largest(&chars));
}

二、泛型结构体 #

rust
struct Point<T> {
    x: T,
    y: T,
}

impl<T> Point<T> {
    fn x(&self) -> &T {
        &self.x
    }
}

fn main() {
    let integer = Point { x: 5, y: 10 };
    let float = Point { x: 1.0, y: 4.0 };
}

三、泛型枚举 #

rust
enum Option<T> {
    Some(T),
    None,
}

enum Result<T, E> {
    Ok(T),
    Err(E),
}

四、总结 #

本章学习了:

  • 泛型函数
  • 泛型结构体
  • 泛型枚举
最后更新:2026-03-27