Іноді потрібно отримати випадкове булеве значення true/false у Ruby. Наприклад коли ми робимо seed бази даних у Rails та хочемо створити об'єкти максимально наближенні до реальних.
Варіант перший. Метод sample:
[true, false].sample
Щоб протестувати, як завжди - запускаємо IRB (Interactive Ruby Shell) в терміналі:
Screenshot 2023-05-03 at 21.01.03.png75,4 кБВаріант другий. Перемішати (метод shuffle) масив [true, false] та взяти перший чи другий елемент використовуючи індекс.
Перемішуємо елементи у масиві:
[true, false].shuffle
Screenshot 2023-05-03 at 21.22.23.png78,3 кБПісля цього беремо перший [0] чи другий [1] елемент перемішаного масиву:
[true, false].shuffle[0]
або
[true, false].shuffle[1]
Screenshot 2023-05-03 at 21.23.32.png96,4 кБВаріант третій. Отримати випадкову цифру за допомогою методу rand та порівняти з одною з них.
1. Отримуємо випадково 0 чи 1;2. Порівнюємо отриману цифру, наприклад з 1.
Рандомна цифра:
rand(2)
=> 0
rand(2)
=> 1
Порівняння:
rand(2) == 1
=> false
rand(2) == 1
=> true
Варіант четвертий. Модіфікований третій варіант (з методом zero?):
rand(2).zero?
Метод zero? запитує, чи цифра дорівнює 0. Тут треба розуміти, що rand(2) дає 0 або 1.
Тож zero? більш красивіший варіант порівняння X == 0
Варіант 5. Бібліотека Faker.
Майже завжди можна побачити в проєкті бібліотеку Faker, яка дає отримати фейкові дані (для створеня тестових об'єктів).
В чистому ruby можна встановити Faker:
gem install 'faker'
підключаємо бібліотеку
require 'faker'
Отримуємо випадкове булеве значення за допомогою Faker:
Screenshot 2023-05-03 at 21.44.17.png67,7 кБДумаю варіантів для отримання рандомного булева значення у Ruby можна знайте ще багато. Саме цим Ruby й крутий. Одну й ту саму задачу можна робити багатьма способами. Та майже всі вони будуть 'правильними'. Тут вже питання за швидкістю виконання коду та його стилю (наскільки його легко читати та розуміти).
Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.
Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.