Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren
Wie erhält man einen zufälligen logischen Wert true oder false in Ruby?
Manchmal muss man einen zufälligen booleschen Wert true/false in Ruby erhalten. Zum Beispiel, wenn wir die Datenbank in Rails seed und Objekte erstellen möchten, die den realen so nah wie möglich kommen.
Erste Variante. Methode sample:
[true, false].sample
Um zu testen, wie immer - starten wir IRB (Interactive Ruby Shell) im Terminal:
Zweite Variante. Mischen (Methode shuffle) des Arrays [true, false] und den ersten oder zweiten Element mit dem Index nehmen.
Wir mischen die Elemente im Array:
[true, false].shuffle
Danach nehmen wir das erste [0] oder das zweite [1] Element des gemischten Arrays:
[true, false].shuffle[0]
oder
[true, false].shuffle[1]
Dritte Variante. Eine zufällige Zahl mit der Methode rand erhalten und mit einer von ihnen vergleichen.
1. Zufällig 0 oder 1 erhalten;2. Die erhaltene Zahl, zum Beispiel mit 1, vergleichen.
Zufällige Zahl:
rand(2)
=> 0
rand(2)
=> 1
Vergleich:
rand(2) == 1
=> false
rand(2) == 1
=> true
Vierte Variante. Modifizierte dritte Variante (mit der Methode zero?):
rand(2).zero?
Die Methode zero? fragt, ob die Zahl 0 ist. Hier muss man verstehen, dass rand(2) 0 oder 1 ergibt.
Also ist zero? eine schönere Variante des Vergleichs X == 0
Fünfte Variante. Die Faker-Bibliothek.
Fast immer kann man in einem Projekt die Faker-Bibliothek sehen, die es ermöglicht, gefälschte Daten (zum Erstellen von Testobjekten) zu erhalten.
In reinem Ruby kann man Faker installieren:
gem install 'faker'
wir binden die Bibliothek ein
require 'faker'
Wir erhalten einen zufälligen booleschen Wert mit Faker:
Ich denke, es gibt noch viele Varianten, um einen zufälligen booleschen Wert in Ruby zu erhalten. Genau das macht Ruby so großartig. Die gleiche Aufgabe kann auf viele Arten gelöst werden. Und fast alle werden 'richtig' sein. Hier stellt sich die Frage nach der Ausführungsgeschwindigkeit des Codes und seinem Stil (wie leicht er zu lesen und zu verstehen ist).