Programing

숫자가 범위 (하나의 문)에 포함되어 있는지 확인하는 방법은 무엇입니까?

lottogame 2020. 10. 18. 08:18
반응형

숫자가 범위 (하나의 문)에 포함되어 있는지 확인하는 방법은 무엇입니까?


Ruby on Rails 3.0.9를 사용하고 있으며 범위에 숫자가 포함되어 있는지 확인하고 싶습니다. 즉, 변수 number = 51 <= number <= 10있으면 number값이 해당 범위에 포함되어 있으면 부울 값 을 확인 하고 검색하고 싶습니다 .

다음과 같이 할 수 있습니다.

number >= 1 && number <= 10

하지만 저는 한 문장으로하고 싶습니다. 어떻게 할 수 있습니까?


(1..10).include?(number) 트릭입니다.

Btw :를 사용하여 번호를 확인 ActiveModel::Validations하려면 다음을 수행 할 수도 있습니다.

validates_inclusion_of :number, :in => 1..10

validates_inclusion_of에 대해 여기에서 읽으 십시오.

또는 Rails 3 방식 :

validates :number, :inclusion => 1..10

Enumerable # include? :

(1..10).include? n

Range # cover? :

(1..10).cover? n

비교 가능 #between? :

n.between? 1, 10

수치 검사기 :

validates :n, numericality: {only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 10}

포함 유효성 검사기 :

validates :n, inclusion: 1..10

유효성 검사 프로세스의 일부가 아닌 경우 다음을 사용할 수 있습니다 #between?.

2.between?(1, 4)
=> true

양식 제출에 대한 정확한 오류 메시지를 보려면 다음을 시도하십시오.

validates_numericality_of :tax_rate, greater_than_or_equal_to: 0, less_than_or_equal_to: 1, message: 'must be between 0 & 100'

레일스 4

ActiveModel :: Validations를 통해 원하는 경우 사용할 수 있습니다.

validates_inclusion_of :number, :in => start_number..end_number

또는 Rails 3 구문

validates :number, :inclusion => start_number..end_number

하지만 내가 찾는 가장 간단한 방법은

number.between? start_number, end_number


Ruby 1.9에서 가장 직접적인 번역은 Range # cover? :

obj가 beg와 end 사이에 있으면 true를 반환합니다. 즉, beg <= obj <= end (또는 exclude_end?가 true 일 때 end exclusive)를 반환합니다.

그것이과 다른 점이 궁금 Range#include?하다면 후자는 숫자가 아닌 범위 인 경우 범위의 모든 요소를 ​​반복한다는 것입니다. 자세한 설명 은이 블로그 게시물참조하십시오 .


사용자 지정 배열에 특정 번호가 있는지 확인하려면

예를 들어 5가 list = [1,4,6,10]에 포함되어 있는지 여부를 알고 싶습니다.

list.include? 5 => false
list.include? 6 => true

참고URL : https://stackoverflow.com/questions/6881900/how-to-check-if-a-number-is-included-in-a-range-in-one-statement

반응형