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 17:46

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

meme code
meme code@memecode
6 maj 09:19

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

meme code
meme code@memecode
10 maj 17:40

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

meme code
meme code@memecode
16 maj 20:02

Co to jest Origin w Git?

meme code
meme code@memecode
16 maj 22:17

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

meme code
meme code@memecode
17 maj 18:52

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

meme code
meme code@memecode
22 maj 16:26

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

meme code
meme code@memecode