Rust 泛型


重复代码

提取函数。

fn largest(list: &[i32]) -> i32 {
    let mut largeNumber = list[0];
    for item in list {
        if *item > largeNumber {
            largeNumber = *item
        }
    }
    largeNumber
}

泛型

提高代码的复用能力。

泛型是具体类型或其他属性的一种代替:泛型只是一种模板,里面有一些占位符

泛型的命名规范

大驼峰。

泛型的使用

必须先声明泛型后使用。

fn larget(list: &[T]) -> T {...}

这里还没有指定特定的trait。

结构体泛型声明

struct Point {x: T}

泛型的结构体的内的类型都要相同,实现这个目的,实现两个不同或相同的类型。
struct Point {x: T, y: U}

结构体方法声明

如果使用泛型结构体方法,那么也要声明泛型的。具体类型就不用

impl Point {}

impl Point {}

把T放在impl关键字后,标识在类型T上实现方法。

Option Result

这两个都是泛型。