例如,要生成 3 到 10 之间的随机数,我使用:rand(8) + 3
rand(8) + 3
有没有更好的方法来做到这一点(类似rand(3, 10))?
rand(3, 10)
更新:Ruby 1.9.3Kernel#rand也接受范围
Kernel#rand
rand(a..b)
http://www.rubyinside.com/ruby-1-9-3-introduction-and- changes-5428.html
转换为数组可能太昂贵了,而且没有必要。
(a..b).to_a.sample
或者
[*a..b].sample
数组#sample
Ruby 1.8.7+ 中的标准。 注意:在 1.8.7 中被命名为#choice,并在以后的版本中重命名。
但是无论如何,生成数组需要资源,而您已经编写的解决方案是最好的,您可以做到。