返回一个随机布尔值的最佳方法

我一直在使用这一段时间来build立假种子数据时返回truefalse 。 只是想知道是否有人有更好,更简洁或冗长的方式返回truefalse

 rand(2) == 1 ? true : false 

使用Array#sample的声明性代码片段:

 random_boolean = [true, false].sample 

如何删除三元运算符。

 rand(2) == 1 

我喜欢用rand

rand < 0.5

编辑 :这个答案用于读取rand > 0.5rand < 0.5技术上更正确。 rand在半开范围 [0,1)返回一个结果,所以使用<导致半开范围[0,0.5)和[0.5,1]相等的几率。 使用>将导致封闭范围[0,0.5]和开放范围(.5,1)的不等式几率。

我通常使用这样的东西:

 rand(2) > 0 

你也可以扩展Integer来创build一个to_boolean方法:

 class Integer def to_boolean !self.zero? end end