Как получить случайное логическое значение 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 большое количество. Выше приведены лишь несколько незамысловатых примеров. Выбор того или иного способа - остается на плечах программиста (способ может быть визуально более красивым, а может - технически быстрее).