더북(TheBook)

에서 GetNumbers() 메서드를 구현할 때 직접 yield return 코드를 여러 번 사용하거나 for 문에서 반복해서 호출할 수 있습니다. GetNumbers() 메서드는 1부터 5까지 반복해서 출력합니다.

처럼 IEnumerable 반환값을 가지는 반복기는 foreach 문으로 반복 호출하여 사용할 수 있습니다.

반복기는 자신이 만들어 놓은 클래스 및 개체의 멤버를 호출할 때 foreach 문을 사용하여 반복 출력되도록 설정해 놓는 구문입니다. 클래스의 인스턴스, 즉 개체의 메서드를 foreach 문으로 배열 형식의 필드에 접근할 수 있게 하는 기능을 추가할 때 사용하는 메서드가 바로 반복기(이터레이터)입니다.

Note ≡ 느긋한 계산법

이터레이터를 사용하면 스트림 형태의 데이터에 대한 지연된 계산법(lazy evaluation)을 제공합니다. 지연된 계산법은 요청이 필요할 때만 실행하는 것을 의미합니다. 코드에서는 foreach 문의 각 요청에 따라 yield 문을 하나만 실행한다는 의미입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.