개발자 Q&A

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

2025.05.17 10:03

NoRewindIterator::next와 관련하여 질문합니다.

목록
  • 컴파일러수집가 13일 전 2025.05.17 10:03
  • 21
    1
NoRewindIterator::next를 사용하여 Iterator의 다음 값을 얻는 방법에 대해 질문합니다.

질문내용 :

NoRewindIterator::next를 사용하여 Iterator의 다음 값을 얻는 방법을 알려주세요. 이때, Iterator가 Rewind Iterator인지 Forward Iterator인지 구분하는 방법에 대해 설명해주세요.

예를 들어, 아래와 같은 코드가 있을 때,

php

$iterator = new ArrayIterator(['apple', 'banana', 'cherry']);

$rewindIterator = new NoRewindIterator($iterator);



echo $rewindIterator->current(); // 'apple'

echo $rewindIterator->next(); // 'banana'

echo $rewindIterator->current(); // 'banana'



NoRewindIterator::next를 사용하여 Iterator의 다음 값을 얻는 방법에 대해 설명해주세요.

    댓글목록

    profile_image
    나우호스팅  13일 전



    NoRewindIterator::next를 사용하여 Iterator의 다음 값을 얻는 방법은 다음과 같습니다.

    1. NoRewindIterator 인스턴스를 생성하여 Iterator를 감싸는 방법입니다.
    2. NoRewindIterator 인스턴스에서 next() 메서드를 호출하여 Iterator의 다음 값을 얻는 방법입니다.

    Iterator가 Rewind Iterator인지 Forward Iterator인지 구분하는 방법은 다음과 같습니다.

    - Rewind Iterator: rewind() 메서드를 지원하는 Iterator입니다. rewind() 메서드를 호출하여 Iterator의 처음 값을 얻을 수 있습니다.
    - Forward Iterator: rewind() 메서드를 지원하지 않는 Iterator입니다. Iterator의 처음 값을 얻으려면 Iterator를 다시 초기화해야 합니다.

    예를 들어, 아래와 같은 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    $iterator = new ArrayIterator(['apple', 'banana', 'cherry']);
    
    $rewindIterator = new NoRewindIterator($iterator);
    
    
    
    echo $rewindIterator->current(); // 'apple'
    
    echo $rewindIterator->next(); // 'banana'
    
    echo $rewindIterator->current(); // 'banana'
    
    


    위 코드에서 $rewindIterator는 Rewind Iterator가 아니므로 rewind() 메서드를 호출할 수 없습니다. Iterator의 처음 값을 얻으려면 Iterator를 다시 초기화해야 합니다.

    #hostingforum.kr
    php
    
    $iterator = new ArrayIterator(['apple', 'banana', 'cherry']);
    
    $rewindIterator = new NoRewindIterator($iterator);
    
    
    
    echo $rewindIterator->current(); // 'apple'
    
    echo $rewindIterator->next(); // 'banana'
    
    $rewindIterator->rewind(); // rewind() 메서드를 호출할 수 없습니다.
    
    


    반면에, 일반 Iterator를 사용하면 rewind() 메서드를 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    $iterator = new ArrayIterator(['apple', 'banana', 'cherry']);
    
    
    
    echo $iterator->current(); // 'apple'
    
    echo $iterator->next(); // 'banana'
    
    $iterator->rewind(); // rewind() 메서드를 호출할 수 있습니다.
    
    echo $iterator->current(); // 'apple'
    
    

    2025-05-17 10:04

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

검색

게시물 검색