숫자가 범위 (하나의 문)에 포함되어 있는지 확인하는 방법은 무엇입니까?
Ruby on Rails 3.0.9를 사용하고 있으며 범위에 숫자가 포함되어 있는지 확인하고 싶습니다. 즉, 변수 number = 5
가 1 <= 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
(1..10).include? n
(1..10).cover? n
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
'Programing' 카테고리의 다른 글
ArrayList 삽입 및 검색 순서 (0) | 2020.10.18 |
---|---|
Rails에서 데몬 서버를 중지하는 방법은 무엇입니까? (0) | 2020.10.18 |
malloc이 gcc에서 값을 0으로 초기화하는 이유는 무엇입니까? (0) | 2020.10.18 |
Bash에서 문자열을 대문자에서 소문자로 변환하는 방법은 무엇입니까? (0) | 2020.10.18 |
Qt : * .pro 대 * .pri (0) | 2020.10.17 |