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

Mat*_*oug 11 ruby

我需要索引一个我用"true"和"false"定义的哈希

colorHash = Hash.new { |hash, key| hash[key] = {} }
colorHash["answers"][true]  = "#00CC00"
colorHash["answers"][false] = "#FFFFFF"
Run Code Online (Sandbox Code Playgroud)

出于测试目的,我使用rand(2)进行索引并且失败了.如果我用真正的索引它是有效的.

我在寻找类似的东西

兰特(2).logical

但一无所获.

Mar*_*ers 25

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

rand(2) == 1
Run Code Online (Sandbox Code Playgroud)


jer*_*ith 6

这样的事怎么样?

[true,false][rand(2)]
Run Code Online (Sandbox Code Playgroud)

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

  • 我喜欢这个主意!在Ruby 1.9中,你可以做`[true,false] .sample` (3认同)

yag*_*oar 5

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

[true,false] .sample

编辑:这仅在Ruby> = 1.9中有效