質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1433閲覧

Ruby Procとlambdaの違いについて

livelive

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2014/10/05 08:02

Ruby初心者です。
Procとlambdaの違いがまったくといってわかりません。
この2つの違いは何なのですか?
どなたか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

既に回答にあるように、Proc、lambdaではreturn時の挙動が異なります。

  • Proc内でreturn → メソッドを中断
  • lambda内でreturn → 値を返してメソッドを続行

他に、lambdaは引数の数をチェックするという違いもあるようです。(Procは渡されない引数にはnilが入る)

下記のページが非常に参考になります。

http://d.hatena.ne.jp/shunsuk/20090101/1230816826

投稿2014/10/09 09:55

k.tada

総合スコア1679

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

livelive

2014/10/16 00:42

わかりやすい回答ありがとうございます。参考になりました!!
guest

0

両者の違いを説明すると、、

Procでは、生成元のスコープを脱出します。
実行されない部分があるということです。

lambdaは、そのブロック内でreturnすると、呼出元に復帰します。
ブロックの結果を返すということです。

投稿2014/10/07 11:30

tarou

総合スコア233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問