Ruby mapメソッドの書き方(配列、hash)

今回はRubyのmapメソッドとその破壊的メソッドであるmap!メソッドについて解説ししていきます。

破壊的メソッドについては以下の記事に書いてあるので、理解していない方は確認してみてください 。

mapとは

mapメソッドは要素の数だけ、ブロック内の処理を行うメソッドのことを言います。

mapメソッドには破壊的メソッドであるmap!メソッドも用意されています。

mapメソッドは内部でeachメソッドが呼ばれているので、eachメソッドが用意されているオブジェクトでのみ使用できます。

mapメソッドの基本的な書き方は以下です。

 

編集長
mapの別名に、「collectメソッド」と言うものがあるが、ほとんど使わないで!

実際にmapを書いてみる

それでは実際にmapを書いていきましょう。

mapは配列や範囲に使う場合と、hashに使う時と挙動が異なります。

配列や範囲に使用する

まずは配列や範囲オブジェクトにmapを使用してみましょう。

 

配列に使用

 

範囲オブジェクトに使用

 

それぞれ、ループが走りブロック内の処理が走っていることがわかります。

hashに使用する

次はhashに使用していきます。

hashはeachやforと同じように、与える変数が1つか2つによって処理が少し変わります。
変数が1つの場合

変数が1つの場合はkeyとvalueがそれぞれ1つづつ変数に入っていきます。

 

変数が2つの場合

変数が2つの場合は1度のループでkeyとvalueの両方がそれぞれの変数に入ります。

 

Arrayとhashで同じメソッドを直感的に使えるのがRubyの良いところ!

その分挙動の違いに注意しよう!

 

hashのmapの返り値

hashでmapを使うと、返り値はArrayになる点に注意が必要です。

まとめ

今回はRubyのmapメソッドについて書いていきました。

mapは実際の現場でも非常によく使用するメソッドで、eachでループを回すよりも綺麗に処理を書くことができたりします。

しっかり覚えておくようにしましょう。

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

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

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

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

 

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

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

を作りました。

 

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