Je l’ai utilisé pendant un certain temps pour retourner soit true
ou false
lors de la création de fausses données de graine. Je me demande si quelqu’un a une manière meilleure, plus succincte ou verbeuse de retourner soit true
soit false
.
rand(2) == 1 ? true : false
Un extrait déclaratif utilisant Array # sample :
random_boolean = [true, false].sample
Que diriez-vous de supprimer l’opérateur ternaire?
rand(2) == 1
J’aime utiliser le rand
:
rand < 0.5
Edit : Cette réponse utilisée pour lire rand > 0.5
mais rand < 0.5
est plus correcte techniquement. rand
retourne un résultat dans la plage semi-ouverte [0,1), donc l'utilisation de <
conduit à des chances égales de plages semi-ouvertes [0,0,5) et [0,5,1]. L'utilisation de >
conduirait à des cotes UNEQUALES de la plage fermée [0,0,5] et de la plage ouverte (0,5).
J’utilise habituellement quelque chose comme ceci:
rand(2) > 0
Vous pouvez également étendre Integer pour créer une méthode to_boolean:
class Integer def to_boolean !self.zero? end end