Proc 字面值¶
捕捉到的區塊等同於宣告一個 Proc 字面值 並將其傳遞給方法。
def some_proc(&block : Int32 -> Int32)
block
end
x = 0
proc = ->(i : Int32) { x += i }
proc = some_proc(&proc)
proc.call(1) # => 1
proc.call(10) # => 11
x # => 11
如proc 字面值章節所述,Proc 也可以從現有的方法建立
def add(x, y)
x + y
end
adder = ->add(Int32, Int32)
adder.call(1, 2) # => 3