Skip to content
เข้าสู่ระบบ

Iterator - วนซ้ำข้อมูล

Iterator คือวิธีวนซ้ำข้อมูลแบบ lazy ไม่คำนวณจนกว่าจะใช้จริง ประหยัดหน่วยความจำ!

Iterator คือ trait ที่มี method หลัก next() ซึ่ง return Option<Item>:

  • Some(item) - ยังมีข้อมูล
  • None - หมดแล้ว
fn main() {
// ============================================
// Iterator trait definition
// ============================================
// trait Iterator {
// type Item;
// fn next(&mut self) -> Option<Self::Item>;
// }
// ============================================
// การใช้ next() โดยตรง
// ============================================
let numbers = vec![1, 2, 3];
let mut iter = numbers.iter();
println!("next(): {:?}", iter.next()); // Some(&1)
println!("next(): {:?}", iter.next()); // Some(&2)
println!("next(): {:?}", iter.next()); // Some(&3)
println!("next(): {:?}", iter.next()); // None
// ============================================
// for loop ใช้ Iterator อัตโนมัติ
// ============================================
for n in numbers.iter() {
print!("{} ", n);
}
println!();
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด