다음과 같은 키워드 &중단 Ruby 프로그래밍 언어의 일부이므로 Ruby를 완전히 이해하려면 Ruby가 어떻게 작동하는지 알아야 합니다.
어떤 용도로 사용되나요?
Ruby에는 모든 종류의 루프가 있습니다.
좋아요 :
- 동안
- ~까지
- 각
루프를 작성할 때 반복을 건너뛰거나 루프를 일찍 끝내고 싶을 수 있습니다.
next
&break
키워드가 들어옵니다!
사용 방법을 알아보겠습니다.
Ruby 다음 키워드(반복 건너뛰기)
next
키워드를 사용하면 한 번의 반복을 건너뛸 수 있습니다.
예 :
문자열을 세고 있다고 가정해 보겠습니다.
그리고 어떤 이유로 크기가 4인 문자열을 계산하고 싶지 않습니다.
이렇게 하면 됩니다 :
strings = ["one", "two", "four", "five"] strings.inject(0) do |sum, str| next if str.size == 4 sum + str.size end # nil
이 코드는 작동하지 않습니다.
당신은 0을 얻습니다.
왜?
next
이기 때문에 nil
반환 기본적으로 return
을 호출하는 것과 같습니다. 반환 값이 없습니다.
아시다시피...
inject
사용 다음 반복의 첫 번째 인수가 되는 &블록에서 반환된 마지막 값을 취합니다.
즉, sum
nil
이 됩니다. .
해결책은?
next
변경 다음 줄:
next sum if str.size == 4
이것은 next
를 만듭니다. sum
값을 반환 .
성능이 가장 높은 우선 순위가 아닌 경우(종종 그렇지 않음) next
를 사용하지 않도록 배열을 사전 필터링할 수 있습니다. .
또는 그 이상 :
strings = ["one", "two", "four", "five"] strings.inject(0) { |sum, str| str.size == 4 ? sum : sum + str.size } # 6
삼항 연산자입니다.
Ruby는 next
를 사용하지 않아도 되는 충분한 도구를 제공한다고 생각합니다. .
사용하세요!
Ruby Break 키워드(루프 조기 종료)
break
키워드는 next
와 같습니다. 하지만 루프를 종료하고 한 번의 반복을 건너뛰는 대신 값을 반환합니다.
루프에서 조기 복귀에 사용할 수 있습니다.
<블록 인용>
return
을 사용하지 않는 이유 예어? 루프뿐만 아니라 현재 메서드에서 종료되기 때문입니다.
또는 무조건 루프를 종료합니다.
좋아요 :
count = 0 loop do break if count == 10 puts count count += 1 end
이것은 0에서 9까지의 숫자 목록을 인쇄합니다.
더 나은 대안은 times
를 사용하는 것입니다. 메소드, upto
방법 또는 범위에 각 방법을 더한 것입니다.
예 :
0.upto(9).each(&method(:puts))
이 &method(:puts)
puts
를 호출하는 바로 가기입니다. 각 번호에 대해.
혼란 방지:Next As A Ruby 방법
어떤 것이 키워드로 존재한다고 해서 메소드 이름으로 사용할 수 없는 것은 아닙니다.
Ruby의 몇몇 클래스는 next
를 구현합니다. 방법으로.
String
처럼 &Integer
.
예 :
1.next # 2
결과가 놀랍지 않습니까?
이건 어때 :
"zz".next # "aaa"
좀 더 흥미롭네요!
어떻게 작동하나요?
음, 모든 클래스는 next
버전을 구현합니다. , 다음 값에 대한 논리를 포함합니다.
정수의 경우 , 이것은 +1
입니다. .
문자열의 경우 , 마지막 문자를 1씩 증가시킵니다(알파벳에서 다음 / +1
숫자의 경우), 이월이 있는 경우(9 -> 0
, z -> a
), 왼쪽의 다음 문자를 증가시킵니다.
요약
next
에 대해 알아보았습니다. &break
Ruby의 키워드, 반복을 건너뛰거나 루프를 조기에 중지하는 데 도움이 되는 방법.
이제 Ruby 기술을 연습할 차례입니다 🙂
읽어주셔서 감사합니다!