Asta07
191 words
1 minutes
이터레이터 패턴

이터레이터(Iteractor)#

for i in 여기에 들어갈수 있는값을 이터러블(Iterable)한 값이라고 하고 Iterator가 구현된 값이 들어갑니다.
더 설명할게 없으니 그냥 많이쓰는 러스트의 Iterator Method나 알아봅시다

next#

iter의 다음값을 가저온다.

fn main() {
    let mut a = [1, 2, 3].iter();
    println!("{}", a.next().unwrap());
    println!("{}", a.next().unwrap());
    println!("{}", a.next().unwrap());
}

cycle#

next를 사용했을떄 다음이 없다면 커서를 처음으로 보낸다

fn main() {
    let mut a = [1, 2, 3].iter().cycle();
    println!("{}", a.next().unwrap());
    println!("{}", a.next().unwrap());
    println!("{}", a.next().unwrap());
    println!("{}", a.next().unwrap());
}

nth#

자기가 원하는 인덱스로 갈수있다. cycle과 같이쓰면 재미있게 사용할수 있다

fn main() {
    let mut a = [1, 2, 3, 4, 5].iter();
    println!("{}", a.nth(0).unwrap());
    println!("{}", a.nth(2).unwrap());
    println!("{}", a.nth(1).unwrap());
    println!("{}", a.nth(3).unwrap());
    println!("{}", a.nth(4).unwrap());
}