ブロック発展レベル
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 は緩やかです。