Cała oryginalna treść jest tworzona po ukraińsku. Nie wszystkie treści zostały jeszcze przetłumaczone. Niektóre posty mogą być dostępne tylko po ukraińsku.Dowiedz się więcej

Jak uzyskać losową wartość logiczną true lub false w Ruby?

Ta treść została automatycznie przetłumaczona z ukraińskiego.
Czasami trzeba uzyskać losową wartość boolean true/false w Ruby. Na przykład, gdy robimy seed bazy danych w Rails i chcemy stworzyć obiekty jak najbardziej zbliżone do rzeczywistych.
Opcja pierwsza. Metoda sample:
[true, false].sample
Aby przetestować, jak zawsze - uruchamiamy IRB (Interactive Ruby Shell) w terminalu:
Screenshot 2023-05-03 at 21.01.03.png
Opcja druga. Wymieszać (metoda shuffle) tablicę [true, false] i wziąć pierwszy lub drugi element używając indeksu.
Wymieszujemy elementy w tablicy:
[true, false].shuffle
Screenshot 2023-05-03 at 21.22.23.png
Po tym bierzemy pierwszy [0] lub drugi [1] element wymieszanej tablicy:
[true, false].shuffle[0]
lub
[true, false].shuffle[1]
Screenshot 2023-05-03 at 21.23.32.png
Opcja trzecia. Uzyskać losową cyfrę za pomocą metody rand i porównać z jedną z nich.
1. Uzyskujemy losowo 0 lub 1;
2. Porównujemy uzyskaną cyfrę, na przykład z 1.
Losowa cyfra:
rand(2)
=> 0
rand(2)
=> 1
Porównanie:
rand(2) == 1
=> false

rand(2) == 1
=> true
Opcja czwarta. Zmodyfikowana trzecia opcja (z metodą zero?):
rand(2).zero?
Metoda zero? pyta, czy cyfra jest równa 0. Tutaj trzeba rozumieć, że rand(2) daje 0 lub 1.
Więc zero? jest ładniejszą opcją porównania X == 0
 
Opcja 5
. Biblioteka Faker. 
Prawie zawsze można zobaczyć w projekcie bibliotekę Faker, która pozwala uzyskać fałszywe dane (do tworzenia testowych obiektów).
W czystym ruby można zainstalować Faker:
gem install 'faker'
łączymy bibliotekę
require 'faker' 
Uzyskujemy losową wartość boolean za pomocą Faker:
Faker::Boolean.boolean
require 'faker'

=> true


Faker::Boolean.boolean

=> false

Faker::Boolean.boolean

=> true
Screenshot 2023-05-03 at 21.44.17.png
Myślę, że można znaleźć jeszcze wiele sposobów na uzyskanie losowej wartości boolean w Ruby. To właśnie czyni Ruby świetnym. Tę samą zadanie można wykonać na wiele sposobów. A prawie wszystkie będą 'poprawne'. Tutaj już chodzi o szybkość wykonania kodu i jego styl (jak łatwo jest go czytać i rozumieć).

Ten post nie ma jeszcze żadnych dodatków od autora.

3 maj '23 17:46

Co zrobić, jeśli w macOS nie działa kamera internetowa?

6 maj '23 09:19

Jak wyłączyć przesyłanie plików w edytorze Trix?

10 maj '23 17:40

Jak używać kolorów szesnastkowych CSS z wartością alfa?

16 maj '23 20:02

Co to jest Origin w Git?

16 maj '23 22:17

Jak usunąć odstęp między elementami inline a inline-block?

17 maj '23 18:52

Co to jest loop w Javascript? Jak działają pętle for i while w Javascript?

22 maj '23 16:26

Jaka jest różnica między <%, <%=, <%# a -%> w szablonach ERB (Ruby on Rails)?