1

我只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。

4

2 回答 2

2

文档 确实说它受支持

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

它也在 1.9.3更新日志中

于 2012-06-12T20:05:29.847 回答
2

从文档逐字复制粘贴

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 支持它

于 2012-06-12T20:08:09.357 回答