是ruby';s rand方法应该接受范围对象吗?

是ruby';s rand方法应该接受范围对象吗?,ruby,random,jruby,range,Ruby,Random,Jruby,Range,我只见过类似于rand(1..5)的东西在MRI ruby 1.9.3中工作(还没有尝试过1.9.2)。Jruby不支持它,即使在1.9模式下,它也会引发一个TypeError 甚至ruby文档也没有提到支持范围。官方的行为是什么 更新 正如答案和评论所指出的,只有1.9.3支持它。Jruby只有1.9.2版本。一定要说它是受支持的 如果max是Range,则返回一个伪随机数,其中Range.member(number)==true 它也在1.9.3中,确实说它是受支持的 如果max是Range

我只见过类似于
rand(1..5)
的东西在MRI ruby 1.9.3中工作(还没有尝试过1.9.2)。Jruby不支持它,即使在1.9模式下,它也会引发一个TypeError

甚至ruby文档也没有提到支持范围。官方的行为是什么

更新

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

一定要说它是受支持的

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

它也在1.9.3中,确实说它是受支持的

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

它也在1.9.3中,从

所以,是的。它受ruby 1.9.3的支持


所以,是的。ruby 1.9.3也支持它,通过rvm使用不同版本的ruby对“标准”ruby 1.9.2进行了测试。它似乎只适用于1.9.3和“标准”ruby 1.9.2通过rvm使用不同版本的ruby时出现的TypeError。它似乎只在1.9.3Ha的情况下起作用,愚蠢的我没有真正阅读方法描述。我刚刚查看了参数名和默认值
(max=0)
。我将接受这一次,所以让我。似乎是新的,不提它。哈,愚蠢的我没有实际阅读方法描述。我刚刚查看了参数名和默认值
(max=0)
。我会接受这一次,所以让我来。似乎是新的,不要提它。@Kelvin当然,继续。我不在乎那些愚蠢的观点。如果我的任何回答能帮助这个星球上的灵魂。这是我继续发布更多答案的充分理由,只是说:)@Kelvin当然,继续。我不在乎那些愚蠢的观点。如果我的任何回答能帮助这个星球上的灵魂。这是我继续发布更多答案的充分理由(只是说:)
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.