Как получить случайное логическое значение true или false в Ruby?
Иногда при наполнении баз данных тестовой информацией - необходимо добавить случайное булево значение ‘true’ или ‘false’.
Булев тип - это логический тип данных, который может иметь всего два возможных значения, называемых истина (true) и ложь (false).
В языке ruby есть метод ‘sample’, который позволяет легко выбрать случайный элемент.
В следующем примере метод ’sample’ применяется по отношению к массиву.
Откроем Interactive Ruby Shell:
irb
Введем:
[true, false].sample
И получим случайный результат (в данном случае был выбран случайным образом элемент ‘true’):
=> true
Отметим, что получить случайное булево значение в языках программирования можно различными способами. Все они будут отличаться лишь уровнем замысловатости кода и его производительностью.
Например, можно использовать метод ‘shuffle’, который перемешивает позиции элементов. Перемешав позиции элементов и выбирая первый (или второй) элемент - мы получим случайное логическое значение true или false.
Перемешать элементы можно таким образом:
[true, false].shuffle
В результате получим один из двух вариантов расстановки элементов:
=> [false, true]
или
=> [true, false]
Чтобы получить случайное значение, можно извлечь значение используя индекс его позиции. Например:
[true, false].shuffle[0]
или
[true, false].shuffle[1]
Оба варианты идентичны.
Если в проекте используется gem ‘faker’ - можно воспользоваться встроенным функционалом:
Подключим gem:
require ‘faker’
Запросим булево значение:
Faker::Boolean.boolean
Результат:
=> false
Как можно заметить, путей получения простого логического значения true или false большое количество. Выше приведены лишь несколько незамысловатых примеров. Выбор того или иного способа - остается на плечах программиста (способ может быть визуально более красивым, а может - технически быстрее).