ruby的rand方法是否应该接受Range对象?

时间:2012-06-12 20:01:29

标签: ruby random jruby range

我只看到rand(1..5)之类的东西在MRI ruby​​ 1.9.3中工作(尚未尝试过1.9.2)。 Jruby不支持它,即使在1.9模式下 - 它引发了一个TypeError。

即使是ruby-doc也没有提到Ranges是受支持的。什么是官方行为?

更新

正如答案和评论指出的那样,只有1.9.3支持它。 Jruby只有1.9.2。

2 个答案:

答案 0 :(得分:2)

The docs 表示支持

  

如果max是Range,则返回一个伪随机数,其中range.member(number)== true。

它也在1.9.3 changelog

答案 1 :(得分:2)

docs

的逐字复制粘贴
If max is Range, returns a pseudorandom number where range.member(number) == true.
Or else converts max to an integer using max1 = max.to_i.abs.

所以,是的。它得到了ruby 1.9.3的支持