Ответ 1
Декларативный фрагмент с использованием Пример массива #:
random_boolean = [true, false].sample
Я использовал это в течение некоторого времени, чтобы вернуть true
или false
при создании поддельных данных семян. Просто интересно, есть ли у кого-нибудь лучший, более краткий или верный способ возврата либо true
, либо false
.
rand(2) == 1 ? true : false
Декларативный фрагмент с использованием Пример массива #:
random_boolean = [true, false].sample
Как насчет удаления тернарного оператора.
rand(2) == 1
Мне нравится использовать rand
:
rand < 0.5
Изменить. Этот ответ используется для чтения rand > 0.5
, но rand < 0.5
более технически корректен. rand
возвращает результат в полуоткрытый диапазон [0,1], поэтому использование <
приводит к равным коэффициентам полу- открытые диапазоны [0,0,5) и [0,5,1). Использование >
приведет к UNEQUAL шансам замкнутого диапазона [0,0.5] и открытого диапазона (.5,1).
Я обычно использую что-то вроде этого:
rand(2) > 0
Вы также можете расширить Integer для создания метода to_boolean:
class Integer
def to_boolean
!self.zero?
end
end