Procオブジェクトを作る方法
Procオブジェクトを作る方法
Procオブジェクトを作る方法は4つ
1. Proc.new{ a, b | a + b } 2. proc{ a, b | a + b } 3. -> (a, b) { a + b } 4. lamda | a, b| a + b
Proc.newとLamdaメソッドの違い
ProcもLamdaもProcクラスのオブジェクトを作成できますが、若干の違いがあります。
1. 引数の違い -> ラムダは引数の違いのチェックが厳しい。引数の数に相違があると、ArgumentErrorが発生します。 2. returnやbreakの挙動が違う
参考記事:
returnやbreakを使ったときのProc.newとラムダの挙動の違い - Qiita
Procオブジェクトの実行方法
add_proc=Proc.new{|a,b|a+b} #callメソッドを使う add_proc.call(10,20)#=>30 #yieldメソッドを使う add_proc.yield(10,20)#=>30 #.()を使う add_proc.(10,20)#=>30 #[]を使うadd_proc[10,20]#=>30
参考: プロを目指す人のためのRuby入門