如何在Ruby中将1和0转换为true和false。想要布尔或逻辑输出

时间:2010-01-14 21:01:00

标签: ruby

我需要索引一个我用“true”和“false”

定义的哈希
colorHash = Hash.new { |hash, key| hash[key] = {} }
colorHash["answers"][true]  = "#00CC00"
colorHash["answers"][false] = "#FFFFFF"

出于测试目的,我使用rand(2)进行索引,但失败了。如果我使用 true 进行索引,则可以正常工作。

我正在寻找像

这样的东西

兰特(2).logical

但一无所获。

4 个答案:

答案 0 :(得分:25)

有一种简单(虽然不是很令人兴奋)的方法:

rand(2) == 1

答案 1 :(得分:6)

这样的事情怎么样?

[true,false][rand(2)]

也就是说,从true / false数组返回一个随机结果。但它肯定比rand(2) == 1更加冗长。

答案 2 :(得分:5)

我认为这是最酷的方法之一,而#sample是不太知名的数组方法之一:

[true,false] .sample

编辑:这仅在Ruby> = 1.9

中有效

答案 3 :(得分:1)

[true,false].shuffle[true,false].sort { rand }

def get_bool
   [true,false].shuffle.shift
end