{category}

Ruby - イテレーションとEnumerator

detect

ディテクト(制御構造と繰り返し

意味 条件を満たす最初の要素を探す


detectとは?

detectメソッドは、配列やハッシュなどのコレクションから、指定した条件を満たす最初の要素を見つけて返します。条件に合う要素がない場合はnilを返します。

detectの具体的な使い方

最初の偶数を探す例

numbers = [1, 2, 3, 4, 5]

first_even = numbers.detect { |num| num.even? }

puts "最初の偶数: #{first_even}"

👇出力結果

最初の偶数: 2

この例では、numbersという配列から最初の偶数を探しています。detectメソッドは条件を満たす最初の要素を返すため、2が見つかった時点で探索を終了します。

条件に合う要素がない場合

numbers = [1, 3, 5, 7, 9]

first_even = numbers.detect { |num| num.even? }

puts "最初の偶数: #{first_even.nil? ? '見つかりません' : first_even}"

👇出力結果

最初の偶数: 見つかりません

この例では、numbersという配列に偶数が存在しない場合の動作を示しています。detectメソッドは条件に合う要素がない場合、nilを返します。

detectに関するよくある質問

Q. detectとfindの違いは?
A. detectとfindは同じメソッドの別名で、機能的な違いはありません。Rubyでは両方とも使用できます。
Q. 条件に合う要素がない場合は?
A. 条件に合う要素がない場合、detectメソッドはnilを返します。
Q. ブロックを省略できますか?
A. はい、ブロックを省略した場合、Enumerable::Lazy#detectはEnumeratorを返します。これを利用して後でブロックを渡すことができます。

Rubyのdetectについても学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのdetectやall?、none?、one?、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

all?

全ての要素が条件を満たすか確認

種類: イテレーションとEnumerator

none?

条件を満たす要素が1つもないか確認

種類: イテレーションとEnumerator

one?

条件を満たす要素がちょうど1つか確認

種類: イテレーションとEnumerator

Ractor#send

Ractorにメッセージを送信

種類: Ractor

Symbol

名前を表す軽量なオブジェクト

種類: 特殊データ型