0

我确实转储了 RUBY_VERSION => 1.8.7 的值

每次, [1,3,5].shuffle 的值也是 [1,3,5] 我必须在它前面添加一个 srand(Time.now.to_i) 或 srand() 以使其随机。 ..我以为 srand 是自动调用的?但也许不在 .cgi 环境中?

如果我使用 irb,然后查看 [1,3,5].shuffle,然后退出,然后重新输入 irb,每次结果都不同。

顺便说一句,ri shuffle没有给出任何东西,并且 Array 和 Enumerable 文档没有列出 shuffle 或 shuffle!任何一个... ?

4

1 回答 1

0

由于我看不到您如何检查它是否已更改,因此我不能肯定地说,但我希望问题必须处理您如何检查它是否已更改。如果您使用随机播放,则不会改变原始数组。因此,如果您检查原始数组的值而不是返回的结果,则会显示该方法每次都返回相同的值

RUBY_VERSION    # => "1.8.7"

a = [1,3,5]

# a does not change, because shuffle does not mutate
a.shuffle       # => [5, 1, 3]
a               # => [1, 3, 5]

# now a does change, because shuffle! does mutate
a.shuffle!  # => [5, 3, 1]
a           # => [5, 3, 1]

此外,这里是文档http://ruby-doc.org/core-1.8.7/classes/Array.html#M000335

于 2010-06-27T11:21:07.133 回答