広告スペース(バナー)
💎Ruby レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 29 / 68
高階関数(関数を引数として渡す)
このレッスンでは、Rubyの高階関数の考え方を学び、ブロックを引数として渡す柔軟なコードが書けるようになることを目標にします。「Ruby 高階関数 ブロック」で調べている方向けです。
メソッドの引数として、別の処理(ブロック)を渡せることを高階関数と呼びます。「作業のやり方だけを指定して、実際の作業は相手に任せる」ようなイメージです。.sortに比較ルールを渡すのが代表例です。
サンプルコードでは、nums.sort { |a, b| b <=> a }という形で、独自の比較ルールをブロックとしてsortメソッドに渡し、降順に並び替えています。<=>は「宇宙船演算子」と呼ばれ、2つの値を比較して-1・0・1のいずれかを返す特殊な演算子です。
初心者がよくつまずくのが、<=>演算子の意味です。左が小さければ-1、等しければ0、大きければ1を返すこの演算子は、Rubyの並び替え処理で頻繁に使われる重要な仕組みで、慣れないうちは戸惑うことが多いです。
これまで学んだmapも、実は関数を引数として受け取る高階関数の一種で、Rubyの読みやすさを支えています。ブロックを引数として渡せる仕組みは、Rubyのコードのいたるところに使われている重要な考え方です。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではRubyを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)