programing

루비에서 'continue'와 유사한 .each 루프에서 루프를 건너뛰려면 어떻게 해야 합니까?

bestprogram 2023. 6. 1. 23:05

루비에서 'continue'와 유사한 .each 루프에서 루프를 건너뛰려면 어떻게 해야 합니까?

루비에서 루프를 건너뛰려면 어떻게 해야 합니까?.each루프, 유사continue다른 언어로?

사용하다next:

(1..10).each do |a|
  next if a.even?
  puts a
end

인쇄:

1
3   
5
7
9

추가적인 냉각 기능도 확인하십시오.redo그리고.retry.

같은 친구들에게도 효과가 있습니다.times,upto,downto,each_with_index,select,map및 기타 반복기(및 보다 일반적으로 블록).

자세한 내용은 http://ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html#UL 을 참조하십시오.

next마치return하지만 블록에 대해서는! (그래서 당신은 이것을 어느 곳에서나 사용할 수 있습니다.proc/lambda역시.)

그것은 또한 당신이 말할 수 있다는 것을 의미합니다.next n"돌아가기" 위해n한 블록에서예를 들어:

puts [1, 2, 3].map do |e|
  next 42 if e == 2
  e
end.inject(&:+)

이것은 산출할 것입니다.46.

참고:return 항상 가장 가까운 곳에서 돌아옵니다.def그리고 결코 차단하지 않습니다; 만약 주변이 없다면.def,returning은 오류입니다.

사용.return블록 내에서 의도적으로 혼란스러울 수 있습니다.예를 들어:

def my_fun
  [1, 2, 3].map do |e|
    return "Hello." if e == 2
    e
  end
end

my_fun결과적으로"Hello.",것은 아니다.[1, "Hello.", 2]왜냐하면return키워드는 외부와 관련이 있습니다.def내부 블록이 아닙니다.

언급URL : https://stackoverflow.com/questions/4230322/in-ruby-how-do-i-skip-a-loop-in-a-each-loop-similar-to-continue