ブロック、Proc、Lambda
ブロック、Proc、Lambdaを使ったRubyの無名関数の扱い方を理解します
「ブロック、Proc、Lambda」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全3レッスンが含まれています。
ブロック、Proc、Lambda
ブロック、Proc、Lambda
Rubyには、ブロック、Proc、Lambdaを使って再利用可能なコードを扱う強力な方法があります。
このレッスンでは、これらの概念を効果的に使う方法を学びます。

ブロックとは
ブロックとは
ブロックとは、do ... endまたは中括弧{ ... }で囲まれたコードのまとまりです。
[1, 2, 3].each do |num|
puts num * 2
end1行ブロック
1行ブロック
単純な処理では、do ... endの代わりに中括弧{}を使用できます。
[1, 2, 3].each { |num| puts num * 2 }メソッドにブロックを渡す
メソッドにブロックを渡す
ブロックは、each、map、timesなどのメソッドに渡せます。
5.times { puts 'Hello, Ruby!' }Procとは
Procとは
Procはコードのまとまりを保存し、後から実行できるオブジェクトです。
say_hello = Proc.new { puts 'Hello from Proc!' }
say_hello.callProcに引数を渡す
Procに引数を渡す
Procには、メソッドと同じように引数を渡せます。
square = Proc.new { |num| num * num }
puts square.call(4)Lambdaとは
Lambdaとは
LambdaはProcに似ていますが、引数をより厳密にチェックします。
greet = ->(name) { puts "Hello, #{name}!" }
greet.call('Alice')ProcとLambdaの違い
ProcとLambdaの違い
- Procsは余分な引数を無視しますが、Lambdasは引数の数を厳密にチェックします。
- Lambdasは呼び出し元のメソッドに制御を戻しますが、Procsはすぐに終了します。
proc_example = Proc.new { return 'Proc Exited' }
lambda_example = -> { return 'Lambda Executed' }
def test
puts proc_example.call
puts lambda_example.call
end
testおめでとうございます!
おめでとうございます!
Rubyでブロック、Proc、Lambdaを使う方法を学びました。
次は、yieldキーワードと動的なブロックの受け渡しについて学びます。

よくある質問
「ブロック、Proc、Lambda」レッスンは無料ですか?
はい。「ブロック、Proc、Lambda」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全3レッスンが含まれています。
「ブロック、Proc、Lambda」で何を学びますか?
ブロック、Proc、Lambdaを使ったRubyの無名関数の扱い方を理解します ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ruby Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。
「ブロック、Proc、Lambda」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このRuby Academyレッスンでコードを書いて実行できますか?
はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- メソッドの定義
- ブロック、Proc、Lambda
- Yieldとブロックの渡し方