Ruby の Proc オブジェクトの評価方法まとめ
Ruby の Proc オブジェクトを評価する場合、いくつかのメソッドが用意されているのでまとめてみました。
proc = Proc.new { |it| 42 + it } proc.call 1 # => 43 proc[2] # => 44 proc === 3 # => 45 proc.yield 4 # => 46
#call
, #[]
, #===
, #yield
の4つのメソッドで評価することができます。
この4つはすべて同等の処理になります。
また、メソッド呼び出し以外にも .()
で #call
を呼び出すことができるシンタックスシュガーがあります。
proc = Proc.new { |it| 42 + it } proc.(5) # proc.call(5) と同等 # => 47
また、このシンタックスシュガーは Proc
以外でも #call
メソッドが定義されているクラスであれば使用する事ができます。
class X def call 42 end end x = X.new p x.call # => 42 p x.() # => 42