[解決済み] Ruby Detect方式
2022-02-07 21:46:42
質問
セレクトは理にかなっている。しかし、誰か.detectを説明してくれませんか?私はこれらのデータを理解していない。
>> [1,2,3,4,5,6,7].detect { |x| x.between?(3,4) }
=> 3
>> [1,2,3,4,5,6,7].detect { |x| x.between?(3,6) }
=> 3
>> [1,2,3,4,5,6,7].detect { |x| x.between?(3,7) }
=> 3
>> [1,2,3,4,5,6,7].detect { |x| x.between?(2,7) }
=> 2
>> [1,2,3,4,5,6,7].detect { |x| x.between?(1,7) }
=> 1
>> [1,2,3,4,5,6,7].detect { |x| x.between?(6,7) }
=> 6
>> [1,2,3,4,5,6,7].select { |x| x.between?(6,7) }
=> [6, 7]
>> [1,2,3,4,5,6,7].select { |x| x.between?(1,7) }
=> [1, 2, 3, 4, 5, 6, 7]
解決方法は?
Detect は、ブロックが TRUE を返すリストの最初の項目を返します。最初の例です。
>> [1,2,3,4,5,6,7].detect { |x| x.between?(3,4) }
=> 3
戻り値
3
という式に対して TRUE を返すリストの最初の項目だからです。
x.between?(3,4)
.
detect
は、条件が初めて真を返した後、反復処理を停止します。
select
は入力リストの最後に到達するまで繰り返し処理を行い、ブロックが真を返したすべての項目を返します。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyのclass << selfイディオム
-
[解決済み] Rubyで「例外 => e」を救済するのはなぜ悪いスタイルなのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyで新しい文字列を作成せずに文字列をトリミングする標準的な方法は何ですか?
-
[解決済み】Rubyで "gets "と "gets.chomp "を使用する方法
-
[解決済み] RubyのNameError
-
[解決済み] Rubyの除算はなぜ10進数ではなく整数を返すのですか?
-
[解決済み] レイルズ・ジェネレート」を逆手に取る方法
-
[解決済み] Ruby on Railsでホスト名やIPを取得する
-
[解決済み] Rubyで中央値を計算する
-
[解決済み] Rubyのダブルコロン `::` とは何ですか?
-
[解決済み] Ruby: 文字列をブーリアンに変換する方法
-
[解決済み] Ruby 2.0.0p0 IRB警告。"DLは非推奨です。Fiddleをお使いください。"