根据值选择

2022/7/17 6:17:18

本文主要是介绍根据值选择,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

trait Select<T>{
    fn select<'a>(self, slice:&'a Vec<T>)->Vec<&T>;
}

impl<T> Select<T> for usize {
    fn select<'a>(self, slice:&'a Vec<T>)->Vec<&T> {
        match slice.get(self) {
            Some(x)=>vec![x],
            None => vec![]
        }
    }
}

impl<T, const N:usize> Select<T> for [usize;N] {
    fn select<'a>(self, slice:&'a Vec<T>)->Vec<&T> {
        let mut r:Vec<&T> = vec![];
        for i in self.into_iter(){
            match slice.get(i.clone()) {
                Some(x) => r.push(x),
                None => {}
            }
        }
        r
    }
}


fn main(){
    let a: Vec<u32> = vec![2,5,6,7,3,2,2,1,100];
    println!("{:?}", Select::select([1,2,3], &a));
    println!("{:?}", Select::select(3, &a));
}

  



这篇关于根据值选择的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程