오늘은 요소 배열, 해시 또는 Enumerable 모듈을 포함하는 기타 개체에 대해 조건문을 확인하는 데 도움이 되는 4가지 Enumerable 메서드에 대해 배웁니다.
이 4가지 메서드는 true
를 반환합니다. 또는 false
.
내용
- 1 Ruby 모든 방법
- 전체 및 빈 배열 2개
- 3 Ruby 없음 메서드
- 4 Ruby Any 메소드
- 5 Ruby One 메서드
- 6 새로운 Ruby 2.5 기능
- 7 요약
- 7.1 관련
해보자!
루비 올 메소드
배열 안의 모든 문자열이 특정 크기를 가지고 있는지 확인하고 싶다면.
이렇게 하면 됩니다 :
def all_words_have_specific_size?(words) return false if words.empty? words.each do |str| return false unless str.size == 5 end true end words = ["bacon", "orange", "apple"] all_words_have_specific_size?(words) # false가 아니면 false를 반환합니다.
모든 문자열을 검사하고 크기가 원하는 크기가 아니면 false
를 반환합니다. , 그렇지 않으면 true
를 반환합니다. 마지막에.
이와 같은 것을 위한 많은 코드입니다.
매번 설정해야 한다고 상상해 보세요. 이런 종류의 검사를 하고 싶습니다.
수고가 많습니다!
여기서 우리가 관심을 갖는 유일한 것은 다음과 같습니다.
str.size == 5
확인 중인 상태입니다. .
이 작업을 수행하는 더 좋은 방법이 있습니까?
네!
all?
사용 모든 힘든 작업을 수행하는 방법입니다.
방법은 다음과 같습니다. :
strings.all? { |str| str.size == 5 }
그게 다야.
전체 및 빈 배열
한 가지 알아야 할 사항:
이 all?
메소드는 true
를 반환합니다. 빈 배열에서 호출하는 경우.
예 :
[].all? { |s| s.size == 1 } # true
설명 :
요소가 false
가 아니기 때문에 모든 요소는 true
여야 합니다. .
이것이 바로 논리입니다.
루비 없음 메소드
all?
의 역순을 원하시면 , none?
사용
예시 :
strings.none? { |str| str.size == 5 }
이것은 true
를 반환합니다. 조건과 일치하는 문자열이 없는 경우 또는 false
하나 이상이 일치하는 경우.
if 문과 같습니다.
루비 모든 메소드
조건과 일치하는 요소가 있는지 알고 싶습니까?
any?
를 사용할 수 있습니다. 방법!
좋아요 :
[1,2,3,4,5].any? # true
이 특정 예에서 any?
empty?
의 역처럼 작동합니다. . 하지만 모든 상황에 적용되는 것은 아닙니다.
질문을 하고 있기 때문입니다. :
"이 배열 안에 TRUTHY 요소가 있습니까?"
배열에 비진리만 포함된 경우(nil
/false
) 값은 false
가 됩니다. , 하지만 배열은 실제로 비어 있지 않습니다.
예 :
[nil].any? # false
이 메서드에 블록을 전달할 수도 있습니다.
[1,2,3].any? { |n| n > 0 } # true
n > 0
인지 확인합니다. true
입니다. 적어도 하나의 요소에 대해.
루비 원 메소드
정확히 하나의 요소가 true
를 반환하는지 확인할 수 있습니다. one?
방법.
예시 :
["a", 1, {}].one? { |obj| obj.kind_of?(Hash) } # true
블록 없이 이것을 사용하여 배열이 정확히 하나의 진실 값(false
제외)을 포함하는지 확인할 수 있습니다. / nil
).
["a"].one? # true [].one? # false [nil].one? # false
나는 size == 1
을 고수할 것이다. 더 명확하기 때문입니다. one?
에 익숙하지 않더라도 누구나 이해할 수 있습니다. 일반적이지 않은 방법입니다.
새로운 Ruby 2.5 기능
Ruby 2.5부터 이 4가지 방법(any?
/ all?
/ none?
/ one?
) 또한 grep의 인수처럼 작동하는 인수를 취합니다.
제 말은 다음과 같습니다. :
[:orange, :apple, :coconut].any?(Symbol) # true [1,2,3].all?(1..10) # true
이것은 클래스, 정규식 또는 범위를 확인하려는 경우에 유용한 작은 지름길입니다.
요약
많은 작업을 절약할 수 있는 4가지 멋진 Ruby 메서드에 대해 배웠습니다! 이 메서드는 true
중 하나만 반환합니다. 또는 false
.
이전에 이러한 방법을 사용해 본 적이 없다면… 지금 시도해 보시지 않겠습니까?
이 기사가 유용했다면 공유해 주세요.