Movatterモバイル変換


[0]ホーム

URL:


rubyco(るびこ)の日記

この広告は、90日以上更新していないブログに表示しています。

lambdaとproc

lambdaとprocはいずれもProc.newの同義語です。

p lambda {}     #=> #<Proc:0x00000000@a.rb:1>p proc {}       #=> #<Proc:0x00000000@a.rb:2>p Proc.new {}   #=> #<Proc:0x00000000@a.rb:3>

追記:あ、ささださんからツッコミが。確かに"except the resulting Proc objects check the number of parameters passed when called."というのを見逃していました。多謝♪
せっかくなので、Proc.newでは引数の数チェックしないのを確かめましょう。

a1 = Proc.new {|a, b| a + b}a2 = lambda {|a, b| a + b}p a1.call(1, 2)p a2.call(1, 2)p a1.call(1, 2, 3)p a2.call(1, 2, 3)

実行結果です。

333a.rb:2: wrong number of arguments (3 for 2) (ArgumentError)        from a.rb:8
検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

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

[8]ページ先頭

©2009-2025 Movatter.jp