Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2008-01-08

[Ruby]Array#choiceとArray#shuffle

Ruby1.9.0-0で増減したメソッド一覧を眺めていたら、Array#choiceなるものを発見。

これ前からほしかったやつじゃん! choiceは配列の中のひとつの要素をランダムに取得する。

10.times {
  p [1, 2, 3, 4, 5].choice
}

実行結果

4
2
1
1
5
5
1
4
1
5

shuffleというメソッドも配列に追加されている。 shuffleは配列の要素をシャッフルする、つまり順番をランダムに並び替える。

10.times {
  p [1, 2, 3, 4, 5].shuffle
}

実行結果

[5, 2, 4, 3, 1]
[2, 1, 3, 5, 4]
[3, 5, 4, 2, 1]
[5, 2, 1, 3, 4]
[3, 2, 4, 1, 5]
[1, 4, 2, 5, 3]
[2, 3, 5, 4, 1]
[3, 2, 5, 1, 4]
[5, 2, 1, 4, 3]
[5, 2, 4, 3, 1]

shuffleには、破壊的に動作するshuffle!も用意されている。