Ответ 1
Используйте метод include?()
:
(1..10).include?(5) #=>true
(1..10).include?(16) #=>false
EDIT:
(1..10)
Range в Ruby, если вам нужен массив (список):
(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10]
В python я могу использовать это, чтобы проверить, есть ли элемент в списке a
:
>>> a = range(10)
>>> 5 in a
True
>>> 16 in a
False
Как это можно сделать в Ruby?
Используйте метод include?()
:
(1..10).include?(5) #=>true
(1..10).include?(16) #=>false
EDIT:
(1..10)
Range в Ruby, если вам нужен массив (список):
(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10]
Диапазон имеет метод ===, который проверяет, является ли аргумент частью диапазона.
Вы используете его следующим образом:
(1..10) === 5 #=> true
(1..10) === 15 #=> false
или как вы его написали:
a= (1..10)
a === 5 #=> true
a === 16 #=> false
Вы должны быть уверены, что значения диапазона и тестируемого значения совместимы, иначе будет выведено исключение.
(2.718..3.141) === 3 #=> true
(23..42) === "foo" # raises exception
Если вы хотите увидеть разницу, откройте irb и введите:
(1..10**9) === 5 #=> true
(1..10**9).to_a.include?(5) # wait some time until your computer is out of ram and freezess