0Pricing
Ruby Academy · レッスン

ブロック、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を使って再利用可能なコードを扱う強力な方法があります。

このレッスンでは、これらの概念を効果的に使う方法を学びます。

ブロック、Proc、Lambda — イラスト1

ブロックとは

ブロックとは

ブロックとは、do ... endまたは中括弧{ ... }で囲まれたコードのまとまりです。

[1, 2, 3].each do |num|
  puts num * 2
end

1行ブロック

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.call

Procに引数を渡す

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 — イラスト10

よくある質問

「ブロック、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. メソッドの定義
  2. ブロック、Proc、Lambda
  3. Yieldとブロックの渡し方
← Ruby Academyに戻る