返回一个随机布尔值的最佳方法
我一直在使用这一段时间来build立假种子数据时返回true
或false
。 只是想知道是否有人有更好,更简洁或冗长的方式返回true
或false
。
rand(2) == 1 ? true : false
使用Array#sample的声明性代码片段:
random_boolean = [true, false].sample
如何删除三元运算符。
rand(2) == 1
我喜欢用rand
:
rand < 0.5
编辑 :这个答案用于读取rand > 0.5
但rand < 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