개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.08 11:49

Generator::next 메소드 사용 방법에 대한 질문

목록
  • 버전컨트롤러 11시간 전 2025.08.08 11:49 새글
  • 4
    1
Generator::next 메소드를 사용할 때 이해가 잘 안 가는데요.
Generator::next 메소드는 Generator 객체에서 다음 값을 반환하는 메소드라고 합니다.
하지만, Generator::next 메소드를 호출할 때는 반드시 yield를 사용한 값이 반환되는지 확인해야 하는 것인지요?
만약 Generator::next 메소드를 호출할 때 yield를 사용한 값이 반환되지 않으면 어떻게 될까요?
혹시 예시 코드를 통해 설명해 주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  11시간 전



    Generator::next 메소드를 호출할 때 반드시 yield를 사용한 값이 반환되는 것은 아닙니다. yield를 사용한 값이 반환되지 않으면 Generator::next 메소드는 StopIteration 예외를 발생시킵니다.

    #hostingforum.kr
    php
    
    function generator() {
    
        yield 1;
    
        yield 2;
    
        yield 3;
    
    }
    
    
    
    $gen = generator();
    
    print_r($gen->current()); // 1
    
    $gen->next(); // yield 2를 반환
    
    print_r($gen->current()); // 2
    
    $gen->next(); // yield 3을 반환
    
    print_r($gen->current()); // 3
    
    $gen->next(); // StopIteration 예외 발생
    
    try {
    
        $gen->next();
    
    } catch (Exception $e) {
    
        echo "StopIteration 예외 발생";
    
    }
    
    


    위 예제에서 generator 함수는 1, 2, 3을 yield로 반환합니다. Generator::next 메소드를 호출할 때 yield를 사용한 값이 반환되지 않으면 StopIteration 예외가 발생합니다.

    2025-08-08 11:50

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,536건 / 1 페이지

검색

게시물 검색