// dictionary
イテレータ.
イテレータ
イテレータは、コレクションの要素に順序よくアクセスする抽象化です。Rust のイテレータは遅延評価(lazy evaluation)を特徴とし、メモリ効率が優れています。
基本的な使用方法
fn main() {
let v = vec![1, 2, 3, 4, 5];
for val in &v {
println!("{}", val);
}
// イテレータメソッド
v.iter().map(|x| x * 2).filter(|x| x > &5).for_each(|x| println!("{}", x));
}
イテレータメソッド
let numbers = vec![1, 2, 3, 4, 5];
// map: 各要素を変換
let doubled: Vec<_> = numbers.iter().map(|x| x * 2).collect();
// filter: 条件でフィルタ
let evens: Vec<_> = numbers.iter().filter(|x| x % 2 == 0).collect();
// fold: 累積計算
let sum = numbers.iter().fold(0, |acc, x| acc + x);
カスタムイテレータ
トレイト(Trait) を実装することでカスタムイテレータを作成できます。
struct Counter {
count: u32,
}
impl Iterator for Counter {
type Item = u32;
fn next(&mut self) -> Option<Self::Item> {
// ...
}
}この辞書が使われているページ
backlinks 1