[筆記][rust] 迭代器(Iterators)範例

參考


  1. https://doc.rust-lang.org/stable/rust-by-example/trait/iter.html
  2. https://doc.rust-lang.org/core/iter/trait.Iterator.html#method.map


描述

// `0..3`是一個迭代器然後他會產生0, 1, 2的資料
let mut sequence = 0..3;

P.S. 以下的iterator方法都可以參考連結2,以下範例會持續更新

1. 如何將資料取出來,可以利用iterator提供的方法next()或是用for來將資料一個一個從iterator取出來

// next()
println!("> {:?}", sequence.next());

// for 
for i in 0..3 {
      println!("> {}", i);
}

2. 從iterator取出特定數量的資料,可以使用take的方法

 for i in fibonacci().take(4) {
        println!("> {}", i);
 }

3. 忽略iterator前幾筆資料,可以以用skip的方法

for i in (0..20).skip(3).take(3) {
    println!("> {}", i);
}

4. 將array轉換成iterator

let array_irem = [1, 3, 3, 7];
for p in array_irem.iter() {
    println!("> {}", p);
}

5. 將iterator裡面的數值加總

let x: i32 = (0..100).sum();
println!("> {:?}", x);

6. 找出iterator的最大值跟最小值

let arr = [99, 9, 30, 2];
println!("{:?}", arr.iter().min());
println!("{:?}", arr.iter().max());

留言

熱門文章