Rubyよく使用するメソッド一覧

【Ruby rails】配列の要素をランダムにシャッフルする方法を徹底解説!

Rubyのshuffleとshuffle!メソッド:配列の要素をランダムに並べ替える

Rubyにおいて、配列の要素をランダムに並べ替える機能は多くの場面で役立ちます。

shuffleとshuffle!メソッドはこの目的に使用され、配列内の要素をランダムに配置し直します。

本記事では、これらのメソッドの使用法、相違点、実用的な例を紹介します。

shuffleメソッドの基本

shuffleメソッドは配列の要素をランダムに並べ替えた新しい配列を生成します。このメソッドは元の配列を変更しません。

基本的な使用方法

配列の要素をランダムに並べ替えます。

ソースコード例: shuffleメソッドの基本的な使用



この例では、配列の要素がランダムに並び替えられた新しい配列が生成されます。出力結果は実行ごとに異なりますが、例えば以下のようになります。

 出力結果
4, 1, 3, 5, 2
サルモリ
「shuffleメソッドで配列をランダムに並べ替えられるんだね!」
Ruby言語のブロック、イテレータを徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版

shuffle!メソッドの基本

shuffle!メソッドも配列の要素をランダムに並び替えますが、shuffleと違って元の配列自体を変更します。

このメソッドを使用すると、配列がその場でランダムに再配置されます。

破壊的な方法で配列をランダムに並び替える

元の配列を直接ランダムに並び替えます。

ソースコード例: shuffle!メソッドの使用



この例では、元の配列がランダムに並び替えられます。

出力結果は実行ごとに異なりますが、例えば以下のようになります。

 出力結果
2, 5, 1, 4, 3
サルモリ
「shuffle!メソッドは元の配列を変更するんだね。注意して使わないとね!」

shuffleとshuffle!の違い

shuffleとshuffle!の主な違いは、元の配列を変更するかどうかです。

shuffleは元の配列を変更せず、新しい配列を返します。一方でshuffle!は元の配列を直接変更します。

同じ条件でshuffleとshuffle!を使った場合

同じ条件でshuffleとshuffle!を使用した場合の違いを確認します。

ソースコード例: shuffleとshuffle!の違い



この例では、shuffleで作成された新しい配列と、shuffle!によって変更された元の配列を比較します。出力結果は実行ごとに異なりますが、例えば以下のようになります。

 出力結果
Shuffled array: 2, 3, 1, 5, 4
Original array after shuffle!: 4, 1, 3, 5, 2
サルモリ
「shuffle!を使うと元の配列が変わるから、使う時は慎重にね!」

shuffleメソッド応用例

shuffleとshuffle!メソッドは、単純な数値や文字列の配列だけでなく、オブジェクトを含む複雑な配列にも応用できます。

オブジェクトの配列での使用

オブジェクトを含む配列でのshuffle/shuffle!メソッドの使用例を見てみましょう。

ソースコード例: オブジェクトの配列でのshuffle/shuffle!メソッドの使用



この例では、商品の配列がランダムに並び替えられます。出力結果は実行ごとに異なりますが、例えば以下のようになります。

 出力結果
Banana, Apple, Cherry
サルモリ
「オブジェクトの配列でもshuffleメソッドが使えるんだね!これは便利だね!」

まとめ

Rubyのshuffleとshuffle!メソッドは配列の要素をランダムに並び替えるメソッドです。

これらのメソッドを適切に使用することで、Rubyプログラミングにおける配列操作の幅が広がります。

Rubyでは、配列の要素をランダムに並び替えることで、多様なデータ処理が可能になります。

たとえば、ゲームのカードをシャッフルする、あるいはプレゼンテーションの順番を決めるといった場面で役立ちます。

shuffleメソッドは配列の要素をランダムに並び替えた新しい配列を返し、shuffle!メソッドは配列自体をランダムに並び替えます。

元の配列を変更するかどうかを理解し、状況に応じて適切なメソッドを選択することが重要です。

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!

サルモリ
最後まで読んでくれてありがとう!!

こちらもCHECK

【Ruby rails】配列やクラスをソートするsort、sort_byメソッドを徹底解説

配列をソートする: Rubyのsort, sort!およびsort_byメソッド Rubyのsort, sort! および sort_by メソッドは配列の要素を整理するのに非常に便利です。 この記事 ...

続きを見る

-Rubyよく使用するメソッド一覧

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock