제너레이터 함수를 이용한 이터레이터 구현

이터레이터는 순회 가능한 객체를 만들어주는 중요한 개념입니다. 제너레이터 함수를 사용하면 간단하게 이터레이터를 구현할 수 있습니다. 이번 글에서는 제너레이터 함수를 이용하여 이터레이터를 구현하는 방법에 대해 알아보겠습니다.

제너레이터 함수란?

제너레이터 함수는 function* 키워드를 사용하여 정의되며, 함수 본문 내에서 yield 키워드를 사용하여 값을 반환합니다. 이때, yield 키워드를 사용하면 함수의 실행이 일시적으로 중단되고 값을 반환하게 되는데, 이때 함수의 상태는 그대로 유지됩니다.

다음은 간단한 제너레이터 함수의 예시입니다.

function* generatorFunction() {
  yield 1;
  yield 2;
  yield 3;
}

제너레이터 함수로 이터레이터 구현하기

이제 제너레이터 함수를 사용하여 순회 가능한 이터레이터를 구현해보겠습니다. 이터레이터는 next() 메소드를 호출하여 값을 순차적으로 가져올 수 있습니다.

function* myIterator() {
  yield 'Apple';
  yield 'Banana';
  yield 'Cherry';
}

const iterator = myIterator();

console.log(iterator.next().value); // 출력: "Apple"
console.log(iterator.next().value); // 출력: "Banana"
console.log(iterator.next().value); // 출력: "Cherry"

위의 예시에서 myIterator는 제너레이터 함수로 정의되었습니다. myIterator()를 호출하여 이터레이터 객체를 생성하고, next() 메소드를 호출하여 값을 가져올 수 있습니다. next() 메소드를 호출할 때마다 yield 키워드가 있는 곳까지 실행되고 해당 값이 반환됩니다.

마무리

제너레이터 함수를 이용하여 이터레이터를 구현하는 방법에 대해 알아보았습니다. 제너레이터 함수는 이터레이터 패턴을 간편하게 구현할 수 있는 강력한 기능입니다.

#programming #javascript