block上級
Ruby の Proc と Lambda の `return` の振る舞いの違いはどれですか?
- 違いはない
- Proc の return は呼び出し元メソッドからも return する。Lambda の return は Lambda 自身からのみ return する
- Lambda の return は呼び出し元メソッドからも return する。Proc の return は Lambda 自身からのみ return する
- Proc は return を使えない
解説
Proc 内の `return` は定義されたスコープのメソッドに影響し、Lambda よりも制御フローが強く働きます。Lambda 内の `return` は Lambda 自身からのみ返り、呼び出し元の処理は継続します。また Lambda は引数の数チェックが厳密ですが、Proc は緩やかです。