Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby Next 및 Break 키워드 이해하기

다음과 같은 키워드 &중단 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 기술을 연습할 차례입니다 🙂

읽어주셔서 감사합니다!