pub fn test_13_2() {
println!("====chapter 13.2");
iter_loop();
iterator_demonstration();
vec_map_to_new_iter();
}
fn iter_loop() {
let v1 = vec![1, 2, 3];
let v1_iter = v1.iter();
for val in v1_iter {
println!("Got: {}", val);
}
}
fn iterator_demonstration() {
let mut v1 = vec![1, 2, 3];
let mut v1_iter = v1.iter();
println!("vec={:?}",v1_iter.next());
println!("vec={:?}",v1_iter.next());
println!("vec={:?}",v1_iter.next());
println!("vec={:?}",v1_iter.next());
let it1 = v1.iter_mut();
let it1 = v1.into_iter();
let filters = search("a","ab\nac\n");
println!("find line={:?}",filters);
}
fn vec_map_to_new_iter()
{
let vecs = vec![1,2,3,4];
let it:Vec<_> = vecs.iter().map(|x|x+1).collect();
println!("new vec={:?}",it);
}
fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> {
contents.lines()
.filter(|line| line.contains(query))
.collect()
}