fn main(){
println!("");
let a = [0,-3,0,15,48];
let e = find_ext(&a);
println!("greatest:{},least:{}",e.greatest,e.least);
}
struct Ext<'a,T>
where T:PartialOrd + std::fmt::Display
{
greatest: &'a T,
least: &'a T
}
/// # 泛型函数可以同时拥有生命周期参数与类型参数,生命周期参数在前面
fn find_ext<'a,T>(slice:&'a [T]) -> Ext<'a,T>
where T:PartialOrd + std::fmt::Display
{
let mut greatest = &slice[0];
let mut least = &slice[0];
for i in 1..slice.len(){
if slice[i] < *least {least = &slice[i];}
if slice[i] > * greatest{greatest = &slice[i];}
}
Ext{greatest,least}
}
Rust 生命周期与泛型函数
最新推荐文章于 2024-06-28 08:03:50 发布