Rust 泛型

重复代码

提取函数。

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

泛型

提高代码的复用能力。

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

泛型的命名规范

大驼峰。

泛型的使用

必须先声明泛型后使用。

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

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

结构体泛型声明

struct Point<T> {x: T}

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

结构体方法声明

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

impl<T> Point<T> {}

impl Point<i32> {}

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

Option Result<T, E>

这两个都是泛型。

上一篇:定义figure


下一篇:百度地图多个点标注