rust学习第9章

rust学习第9章

本文字数:302  阅读时长:1分钟

访客数:加载中... | 阅读量:加载中...

提取函数 泛型 Trait 生命周期

提取函数

就是把重复部分提取出来转化为一个函数

泛型

对于不同的数组想要返回类似的结果 比如传入一个i32类型数组 求一个i32的返回值 同样的代码传入一个u32数组或者是字符数组返回对应的类型时可以用泛型 进行

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

上述就是单一类型的只能处理i32类型的

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

同样在struct里也一样

rust
struct Point<T> {
    x: T,
    y: T,
}
fn main()
{
    let integer = Point{x: 5,y: 10};
    let float = Point(x: 5.0,y: 10.0);
}
rust
enum Option<T>{//一样
    Some(T),
    None,
}
//在类型T上实现方法
impl<T> Point<T>{
    fn x(&self) -> &T{
        &self.x
    }
}

Trait

  • Trait的定义:把方法签名放在一起,定义实现某种目的所必需的一组行为