Proc 리터럴
Proc 리터럴 (Proc literal)
캡처된 블록(captured block)은 Proc 리터럴을 선언해서 그 메서드에 전달하는 것과 같아요. 기존 메서드로부터 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