如果我說...保存洗牌陣列的順序紅寶石
a = [1,2,3]
a.shuffle
puts a
...它給[1,2,3]。如果相反我說...
a=[1,2,3]
a.shuffle!
puts a
...它給了我一個新的順序,每次我說放一個。所以我的問題是我如何保存一個混洗陣列放入的訂單?如果它第一次返回[3,1,2],它應該保持這個順序。這有意義嗎?
這是我正在談論的一個例子。每次我打電話給b,我都會得到不同的結果。
> a=[1,2,3]
=> [1, 2, 3]
> b=a.shuffle!
=> [1, 3, 2]
> b
=> [1, 2, 3]
> b
=> [2, 1, 3]
> b
=> [1, 3, 2]
> b
=> [3, 2, 1]
「b」似乎指代函數a.shuffle而不是shuffle本身的結果。
答案:
使用上TryRuby.org在線翻譯時發生問題。在我的電腦上使用交互式Ruby解釋器會給出正確的結果。感謝大家的幫助!
'a = [1,2,3]' 'b = a.shuffle puts b' ?? – uday 2013-02-19 20:48:44
保存訂單意味着什麼?我認爲這會有所幫助,如果你給了一些周圍的代碼,以便如何定義和調用此代碼。 – 2013-02-19 20:53:02
每次你放一個''都不會給你一個新的訂單;它會在您每次運行代碼時爲您提供一個新的隨機順序,因爲這會導致它再次「洗牌」。 – Phrogz 2013-02-19 20:56:02