Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 801 Bytes

generic.md

File metadata and controls

27 lines (21 loc) · 801 Bytes

泛型机制是编程语言用于表达类型抽象的机制,一般用于功能确定、数据类型待定的类,如链表、映射表等

下面是一个使用泛型的例子。

use std::cmp::PartialOrd;
fn largest<T: PartialOrd  + Copy>(list: &[T]) -> T {
    let mut largest = list[0];

    for &item in list.iter() {
        if item > largest {
            largest = item;
        }
    }

    largest
}
fn main() {
    let number_list = vec![34, 50, 25, 100, 65];
    let result = largest(&number_list);
    println!("The largest number is {}", result);
}

要注意的是,在 largest 函数中,进行了 > 和 copy 等操作。而不一定所有的类型都实现了这两个方法。 所以要求传入的 T 必须要实现了 PartialOrd 和 Copy 这两个 trait 才可以。