类型参数

在具有类型参数声明的项的主体内部,其类型参数的名称是类型

#![allow(unused)]
fn main() {
fn to_vec<A: Clone>(xs: &[A]) -> Vec<A> {
    if xs.is_empty() {
        return vec![];
    }
    let first: A = xs[0].clone();
    let mut rest: Vec<A> = to_vec(&xs[1..]);
    rest.insert(0, first);
    rest
}
}

在此,first 具有 A 类型,引用了 to_vecA 类型参数;并且 rest 具有 Vec<A> 类型,一个元素类型为 A 的向量。