万正宇
2022-04-25
--021 // trait Iterator { // type Item; //关联类型 // fn next(&mut self) -> Option<Self::Item>; //Some(Item) // } // trait InIterator<i32> { // fn each<F: Fn(i32) -> i32>(&mut self, f: F); // } // impl InIterator<i32> for Vec<i32> { // fn each<F: Fn(i32) -> i32>(&mut self, f: F) { // let mut i = 0; // while i < self.len() { // self[i] = f(self[i]); // i += 1; // } // } // } // #[warn(non_camel_case_types)] // fn main() { // let mut v = vec![3, 4]; // v.each(|i|{ i*i }); // for item in &v { // println!("{:?}", item); // } // } // Intolter, Iter, IterMut, 迭代,适配,消费器 // into_iter(),iter(),iter_mut() // https://doc.rust-lang.org/std/vec/struct.Vec.html#impl-IntoIterator // impl<'a, T> Iter<'a, T> {..} // impl<'a, T> IterMut<'a, T> {..} // 迭代器模式 // 三方库itertools --022 /** let v: Vec<i32> = [1, 2, 3].into_iter().map(|x| x + 1).rev().collect(); FromIterator Trait collect收集 视图 Intolter, Iter, IterMut, 迭代,适配(包装),消费器 into_iter(),iter(),iter_mut() https://doc.rust-lang.org/src/core/iter/adapters/map.rs.html#61-65 https://github.com/rust-itertools/itertools */
展开