ブロック発展レベル

Ruby の Proc と Lambda の return の振る舞いの違いはどれですか?

  • 1違いはない
  • 2Proc の return は呼び出し元メソッドからも return する。Lambda の return は Lambda 自身からのみ return する
  • 3Lambda の return は呼び出し元メソッドからも return する。Proc の return は Lambda 自身からのみ return する
  • 4Proc は return を使えない

解説

Proc 内の return は定義されたスコープのメソッドに影響し、Lambda よりも制御フローが強く働きます。Lambda 内の return は Lambda 自身からのみ返り、呼び出し元の処理は継続します。また Lambda は引数の数チェックが厳密ですが、Proc は緩やかです。

問題一覧へ戻る