読者です 読者をやめる 読者になる 読者になる

lambdaについて

ruby

lambaはProcオブジェクトの別の書き方です。

Procオブジェクトやブロックに関してはこちらの記事をみてください。

ブロックについて - mikami's engineer diary

x = lambda { 'foo' }
x.call
=>foo

lambdaは->でも書けるので上はこのように書き直せます。

x = -> { 'foo' }
x.call
=> "foo"

railsだとこっちの方が見かけると思います。

ブロックを渡していたんですね。

引数も渡せます。

x = -> (x) { x + 100 }
x.call(5)
=> "105"

Procオブジェクトとの挙動の違いはあります。

詳細はこちらをご覧ください。

class Proc (Ruby 2.3.0)