iterator
example
code:rust
let mut v1: Vec<i32> = Vec::new();
v1.push(1);
v1.push(2);
let v2: Vec<i32> = v1.iter()
.map(|x| x + 1)
.filter(|i| i == &2)
.collect();
assert_eq!(v1, vec!1, 2); はまりどころ
全般
取得する値は、基本的に型を記述しなければいけない
code:rust
let mut v1: Vec<i32> = Vec::new();
v1.push(1);
v1.push(2);
// NG
let v2 = v1.into_iter()
.filter(|i| i == &2)
.collect();
// OK
let v2: Vec<i32> = v1.into_iter()
.filter(|i| i == &2)
.collect();
filter
フィルターの場合所有権を移さないとfilterを使用できない
code:rust
// NG
let v2 = v1.iter()
.filter(|i| i == &2)
.collect();
// OK
let v2: Vec<i32> = v1.into_iter()
.filter(|i| i == &2)
.collect();