はじめてのRuby!collectメソッドでブロックの戻り値を取得する

collectメソッドを使用すると、配列の要素ごとにブロックの処理結果を取得できるので便利です。

「配列の要素ごとの演算結果を別の配列で取得したい」
「collectメソッドの使い方がいまいちわからない」

そんな方に向けて、ここでは以下の内容を解説していきます!


【基礎】collectメソッドとは
【基礎】collectメソッドの使い方
【基礎】collect!メソッドの使い方
【発展】範囲オブジェクトでcollectメソッドを使う方法

この記事ではcollectメソッドについてわかりやすく解説していますので、ぜひ参考にしてください。

collectメソッドとは

collectメソッドは一言で言うと「ブロックの結果を配列として返す」ためのものです。

そのため、配列の要素ごとに演算結果を取得したい場合などに、for文などの繰り返し処理を使わずに済むので非常に便利なメソッドです。

collectメソッドの書き方:

オブジェクトには配列や範囲オブジェクトを指定します。

ブロックの引数itemには各要素が格納されます。

blockの処理結果を要素ごとに配列として返します。

「!」を指定した破壊的メソッドを使用することもできます。

また、mapメソッドはcollectメソッドの別名のため、同じ処理が可能です。

collectメソッドの基本

ここではcollectメソッドの基本的な使い方について、見ていきましょう。

collectメソッドの使い方

以下ではcollectメソッドを使用して、配列の値をブロックの処理で演算して結果を配列として返すプログラムです。

実行結果:

ブロックの処理で実施される「item * 3」の処理が、要素ごとに結果として配列で返されていることがわかりますね!

以下では配列の要素ごとにupcaseメソッドを使用して、文字列を大文字に変換しています。

実行結果:

collect!メソッドの使い方

collectメソッドは破壊的メソッドであるcollect!を使用することができます。

破壊的メソッドを使用すると、元の配列自身の内容が変更されます。

実行結果:

mapメソッドの使い方

mapメソッドはcollectメソッドの別名のため、同様の結果を返します。

実行結果:

範囲オブジェクトでcollectメソッドを使う方法

collectメソッドは範囲メソッドでも使用できます。

実行結果:

配列同様ブロックの処理結果が配列として返されていることがわかりますね!

まとめ

ここでは、配列や範囲オブジェクトでのブロック処理を、配列として取得するcollectメソッドについて解説しました。

  • collectメソッドとは
  • collectメソッドの使い方
  • collect!メソッドの使い方
  • 範囲オブジェクトでcollectメソッドを使う方法

collectメソッドを使用すれば、簡単にブロックの処理を配列として取得できますので使い方についてはよく理解しておきましょう。

もしcollectメソッドについて忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説