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

时间:2011-11-04 16:40:35

标签: ruby

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

rand(2) == 1 ? true : false

4 个答案:

答案 0 :(得分:236)

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

random_boolean = [true, false].sample

答案 1 :(得分:33)

如何删除三元运算符。

rand(2) == 1

答案 2 :(得分:14)

我喜欢使用rand

rand < 0.5

修改:此答案用于阅读rand > 0.5,但rand < 0.5在技术上更为正确。 rand会在half-open range [0,1]中返回结果,因此使用<会导致半开范围[0,0.5]和[0.5,1]的相等几率。使用>将导致闭合范围[0,0.5]和开放范围(.5,1)的UNEQUAL几率。

答案 3 :(得分:4)

我通常使用这样的东西:

rand(2) > 0

您还可以扩展Integer以创建to_boolean方法:

class Integer
  def to_boolean
    !self.zero?
  end
end