루비에서 '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
,return
ing은 오류입니다.
사용.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
'programing' 카테고리의 다른 글
SQL Server 연결 문자열을 설정하려면 어떻게 해야 합니까? (0) | 2023.06.01 |
---|---|
Angular.copy의 Angular.copy에 대한 대안은 무엇입니까? (0) | 2023.06.01 |
오류: 모듈에서 예기치 않은 값 '정의되지 않음'을(를) 가져왔습니다. (0) | 2023.06.01 |
Ruby에서 파일 이름 및 확장자 가져오기 (0) | 2023.06.01 |
VS2015 게시를 시도할 때 충돌 (0) | 2023.06.01 |