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

如何在Ruby中将1和0强制转换为true和false。想要布尔或逻辑输出吗,ruby,Ruby,我需要索引到一个散列中,我已经用“true”和“false”定义了这个散列 出于测试目的,我使用rand(2)编制索引,但失败了。如果我使用true进行索引,它会工作 我在找类似的东西 兰德(2)。逻辑 但是什么也找不到。有一个简单的方法可以做到这一点: rand(2) == 1 [对,错].洗牌 或[true,false]。排序{rand} def get_bool [true,false].shuffle.shift end 像这样的怎么样 [true,false][rand(2)

我需要索引到一个散列中,我已经用“true”和“false”定义了这个散列

出于测试目的,我使用rand(2)编制索引,但失败了。如果我使用true进行索引,它会工作

我在找类似的东西

兰德(2)。逻辑

但是什么也找不到。

有一个简单的方法可以做到这一点:

rand(2) == 1

[对,错].洗牌
[true,false]。排序{rand}

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

像这样的怎么样

[true,false][rand(2)]

也就是说,从真/假数组返回一个随机结果。但是,它肯定比rand(2)==1更详细。

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

[对,错]。示例


编辑:这只在Ruby>=1.9中有效,我喜欢这个主意!在Ruby 1.9中,您可以执行
[true,false].sample
[true,false][rand(2)]