gw_rust_programming_tutorial/chapter_13/
file_iterator.rs1pub fn test_13_2() {
2 println!("====chapter 13.2");
3 iter_loop();
4 iterator_demonstration();
5 vec_map_to_new_iter();
6}
7
8fn iter_loop() {
9 let v1 = vec![1, 2, 3];
10
11 let v1_iter = v1.iter();
12
13 for val in v1_iter {
14 println!("Got: {}", val);
15 }
16}
17
18fn iterator_demonstration() {
22 let mut v1 = vec![1, 2, 3];
23
24 let mut v1_iter = v1.iter();
25
26 println!("vec={:?}",v1_iter.next());
27 println!("vec={:?}",v1_iter.next());
28 println!("vec={:?}",v1_iter.next());
29 println!("vec={:?}",v1_iter.next());
30
31 let it1 = v1.iter_mut();
32 let it1 = v1.into_iter();
33
34 let filters = search("a","ab\nac\n");
35 println!("find line={:?}",filters);
36}
37
38fn vec_map_to_new_iter()
40{
41 let vecs = vec![1,2,3,4];
42 let it:Vec<_> = vecs.iter().map(|x|x+1).collect();
43
44 println!("new vec={:?}",it);
45}
46
47fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> {
49 contents.lines()
50 .filter(|line| line.contains(query))
51 .collect()
52}