この広告は、90日以上更新していないブログに表示しています。
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
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。