Ruby mapメソッドについて

1pt   2018-11-09 14:42
IT技術情報局

はじめに

エンジニア1年生です。
日々の学びのメモとしてコツコツと記事を書こうと思っています。
今回はmapメソッドの使い方について書いていきます。

mapとは?

配列の要素の数だけ繰り返し処理を行うメソッドです。

mapメソッド

書き方は
配列の入った変数.map {|変数名| 処理内容 }
です。

mapは処理後に戻り値で配列を作成してくれます。
元の配列が上書きされることはありません。

例として配列の要素の文字数をmapメソッドで取得して変数に入れてみます。

controller.rb animal = ["dog", "cat", "koara","bird"] animal.map {|a| a.length}

結果

animalの中身は ["dog", "cat", "koara","bird"] 戻り値は [3, 3, 5, 4]

このようにmapは戻り値で配列を作成してくれます。

map!メソッド

配列の値を処理結果に置き換えたい場合に使用します。
map!は元の配列を戻り値に置き換えます。

controller.rb animal = ["dog", "cat", "koara","bird"] animal.map! {|a| a.length}

結果

animalの中身は [3, 3, 5, 4] 戻り値は [3, 3, 5, 4]

このようにmap!は配列の要素を処理の結果と入れ替えます。

eachとの違い

 戻り値が異なります。
 mapは配列を作成して返してくれるのに対して
 eachの戻り値はレシーバ自体が返ってきます。

controller.rb animal = ["dog", "cat", "koara","bird"] animal.each {|a| a.length}

結果

animalの中身は ["dog", "cat", "koara","bird"] 戻り値は ["dog", "cat", "koara","bird"]

Source: rails tag

   ITアンテナトップページへ
情報処理/ITの話題が沢山。