Iterators

Iterator๋ฅผ ์ปค์Šคํ…€ ํƒ€์ž…์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

You can implement the Iterator trait on your own types:

struct Fibonacci {
    curr: u32,
    next: u32,
}

impl Iterator for Fibonacci {
    type Item = u32;

    fn next(&mut self) -> Option<Self::Item> {
        let new_next = self.curr + self.next;
        self.curr = self.next;
        self.next = new_next;
        Some(self.curr)
    }
}

fn main() {
    let fib = Fibonacci { curr: 0, next: 1 };
    for (i, n) in fib.enumerate().take(5) {
        println!("fib({i}): {n}");
    }
}

์—ญ์ฃผ

  • ์ดํ„ฐ๋ ˆ์ดํ„ฐ ํŠธ๋ ˆ์ดํŠธ์˜ next()๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•œ ์˜ˆ์ œ