在构建假种子数据时,我已经使用了一段时间来返回true
或false
。只是想知道是否有人有更好,更简洁或冗长的方式返回true
或false
。
rand(2) == 1 ? true : false
答案 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