Ruby 配列を結合する4つの方法 (concat, +, reduce, |)

こんにちは!

FunTech編集長です!

今回はRubyの配列を結合する方法について解説していきます。

配列の結合には様々なケースがあります。

そこで今回は

  • 2つの配列を結合する
  • 3つ以上の配列を結合する
  • 重複の無いように結合する

の3つの章に分けて解説していきます!

それでは行ってみましょう!

2つの配列を結合する

まずは2つの配列を結合する方法についてです。

2つの配列を結合するには「concatメソッド」「+メソッド」の2つの方法があります。

concat

配列の結合でよく使用されるのが「concatメソッド」です。

concatメソッドはレシーバと引数の配列を結合し、レシーバを変更する破壊的メソッドです。

このようにarray1の末尾にarray2が結合されて行っていることがわかります!

+

次に「+メソッド」です。

一見演算子のように見えますが、「+」と言う名前のメソッドです。

+メソッドは、レシーバを変更せず、配列を結合していくメソッドです。

このように配列が結合されていることがわかります。

concatメソッドと+メソッドの違いは

  • concatは破壊的メソッドでレシーバが破壊される
  • +メソッドは内部で新しいオブジェクトが生成されるので処理が少し遅い

の2点が挙げられます。

状況に応じて使い分けるようにしましょう!

編集長

+メソッドの方が書きやすいから使いがちやけど、上記の挙動の違いに注意!!

3つ以上の配列を結合する

次に3つ以上の配列を結合する方法について見ていきましょう!

reduce

3つ以上の配列を結合するときは以下のように、「concatメソッド」を繋げてもできます。

しかし結合する配列の数が増えてくると、concatと何度も打つのは面倒になってきます。

そんな時に使用するのが「reduceメソッド」です。

reduceメソッドの引数にメソッドのシンボルを与えると、そのメソッドを各要素に実行する性質を生かして、スマートに実装することができます!

編集長

reduceの挙動はちょいムズ。

詳しくは公式リファレンスに載ってるから、そちらもチェック!

https://ref.xaio.jp/ruby/classes/enumerable/reduce

重複の無いように結合する

|

重複の無いように結合するには「uniqueメソッド」などを使用してもかけますが、簡単に書く時は「|メソッド」が使用されます。

このように重複せず、結合されていることがわかります!

編集長

「|」はあまり知られていないメソッド!

簡単にユニークな結合ができるから結構おすすめ!

まとめ

今回はRubyの配列を結合する方法について見ていきました!

様々な方法がありますが、必要になった時のために頭の片隅においておくようにしましょう!

4980円のプログラミングスクール

プログラミングスクールに通いたいけど

  • 「値段が高すぎる」
  • 「実力がつくか不安」
  • 「しっかりした先生に教えてもらえるか不安」

と思ったことはありませんか?

 

でもそんなあなたの悩みは一気に解決するんです。

「月額4980円で現役フリーランスエンジニアに質問し放題なプログラミングスクール」

を作りました。

 

人数に限りがありますのでお申し込みはお早めに。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です