Rubyのreverseとreverse!メソッド:配列の要素の順序を逆にする
Rubyで配列を操作する際、特定のシナリオで配列の要素の順序を逆にしたい場合があります。
reverseとreverse!メソッドはこの目的に特化しており、配列の要素の順序を逆にする際に利用されます。
この記事では、これらのメソッドの使い方、違い、および実践的な使用例を詳しく解説します。
reverseメソッドの基本
reverseメソッドは、配列の要素の順序を逆にした新しい配列を返します。このメソッドは元の配列を変更しません。
基本的な使用方法
配列の要素の順序を逆にします。
ソースコード例: reverseメソッドの基本的な使用
1 2 3 |
array = [1, 2, 3, 4, 5] reversed_array = array.reverse puts reversed_array |
この例では、配列の要素が逆順の新しい配列として返されます。
出力結果
5
4
3
2
1
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
reverse!メソッドの基本
reverse!メソッドも配列の要素の順序を逆にしますが、reverseと異なり元の配列自体を変更します。
このメソッドを使用すると、配列の内容がその場で逆順に変わります。
破壊的な方法で配列を逆順にする
元の配列を直接逆順にします。
ソースコード例: reverse!メソッドの使用
1 2 3 |
array = [1, 2, 3, 4, 5] array.reverse! puts array |
この例では、元の配列が逆順に変更されます。
出力結果
5
4
3
2
1
reverseとreverse!の違い
reverseとreverse!の主な違いは、元の配列を変更するかどうかです。reverseは元の配列を変更せず、新しい配列を返します。一方でreverse!は元の配列を直接変更します。
同じ条件でreverseとreverse!を使った場合
同じ条件でreverseとreverse!を使用した場合の違いを確認します。
ソースコード例: reverseとreverse!の違い
1 2 3 4 5 6 |
original_array = [1, 2, 3, 4, 5] reversed_array = original_array.reverse original_array.reverse! puts "Reversed array: #{reversed_array}" puts "Original array after reverse!: #{original_array}" |
この例では、reverseで作成された新しい配列と、reverse!によって変更された元の配列を比較します。
出力結果
Reversed array: 5 4 3 2 1
Original array after reverse!: 5 4 3 2 1
reverseメソッドの応用例
reverseとreverse!メソッドは、単純な数値や文字列の配列だけでなく、オブジェクトを含む複雑な配列にも応用できます。
オブジェクトの配列での使用
オブジェクトを含む配列でのreverse/reverse!メソッドの使用例を見てみましょう。
ソースコード例: オブジェクトの配列でのreverse/reverse!メソッドの使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class Product attr_reader :name, :price def initialize(name, price) @name = name @price = price end end products = [ Product.new("Apple", 120), Product.new("Banana", 80), Product.new("Cherry", 200) ] reversed_products = products.reverse puts reversed_products.map(&:name) |
この例では、商品の配列の順序が逆になります。
出力結果
Cherry
Banana
Apple
まとめ
Rubyのreverseとreverse!メソッドは、配列の要素の順序を逆にするためのメソッドです。
これらのメソッドを適切に使用することで、Rubyプログラミングにおける配列操作の幅が広がります。
元の配列を変更するかどうかを理解し、状況に応じて適切なメソッドを選択することが重要です。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
こちらもCHECK
-
【Ruby rails】配列の要素を回転させるrotateメソッドを徹底解説!
Rubyのrotateとrotate!メソッド:配列の要素をローテーションする Rubyで配列を扱う際、配列の要素をローテーション(回転)させることは一般的な操作の一つです。 rotateとrotat ...
続きを見る