우리는 retry에 대해 이야기했습니다. 예외 후 재시도에 대해 논의하는 동안 키워드입니다. 잘 알려지지 않은 redo 비슷하게 작동하지만 전체 블록 대신 루프 반복을 다시 실행합니다.
redo 키워드
이전 아카데미 기사에서 배운 것처럼 retry 블록의 코드 조각을 다시 시도할 수 있습니다:
이 예에서는 예외가 발생하기 전에 "Iteration"이라는 단어를 콘솔에 인쇄합니다. retry를 호출하는 구조 블록이 실행됩니다. 블록을 처음부터 다시 시작합니다. 이로 인해 우리 프로그램은 Iteration을 끝없이 인쇄하게 됩니다. . redo 키워드를 사용하면 루프를 사용할 때 비슷한 효과를 얻을 수 있습니다. 이는 예를 들어 반복하는 동안 다시 시도해야 하는 상황에서 유용합니다.
다음과 같이 인쇄됩니다:
반복 횟수가 어떻게 동일하게 유지되는지 확인하세요. 실행을 루프 시작 부분으로 되돌립니다. retry를 사용하는 이 변형 코드 완전히 동일한 출력을 인쇄합니다:
redo을 사용할 수 있습니다 루프에서 재시도를 구현합니다. 다음 예에는 작업 대기열이 있습니다. :success을 반환합니다. 또는 :failure . 작업이 성공할 때까지 동일한 루프 반복을 계속 다시 실행합니다.
next 키워드
현재 루프의 시작 부분으로 돌아가는 대신 루프의 다음 반복으로 이동하려면 next을 사용할 수 있습니다. .
다음과 같이 인쇄됩니다:
반복 카운터가 어떻게 계속 증가하는지 확인하세요. 대부분의 경우 next을 사용합니다. 당신이 원하는 것입니다. redo을 보세요 정확한 횟수만큼 실행되는 루프가 필요하거나 배열을 반복할 때 오류 처리가 필요한 경우.
루프에서 반복을 다시 실행하는 방법에 대해 새로운 내용을 배웠기를 바라며 이 기사(또는 AppSignal Academy 시리즈의 다른 기사)에 대해 어떻게 생각하는지 알고 싶습니다. 귀하의 생각이나 Ruby 주제에 대해 더 배우고 싶은 점이 있으시면 주저하지 마시고 알려주시기 바랍니다.
티스 카디에
최고 기술 책임자(CTO) 겸 공동 창업자. Thijs는 인프라 작업을 위해 몇 달 동안 사라지는 경우도 있습니다. 수십억 건의 요청이 올바르게 처리되는지 확인합니다. 회사 최고의 드러머.
Thijs Cadier의 모든 기사