4
오늘 아침에 proc.new가 클래스 초기화 메소드에서 작동하지만 람다에서는 작동하지 않는다는 것을 알았습니다. 구체적으로, 내 말은 : 위의 경우Ruby proc vs lambda in initialize()
class TestClass
attr_reader :proc, :lambda
def initialize
@proc = Proc.new {puts "Hello from Proc"}
@lambda = lambda {puts "Hello from lambda"}
end
end
c = TestClass.new
c.proc.call
c.lambda.call
는, 결과는 다음과 같습니다
Hello from Proc
test.rb:14:in `<main>': undefined method `call' for nil:NilClass (NoMethodError)
이 왜입니까?
감사합니다.
'Kernel.lambda'를 호출하는 것이 또 다른 옵션입니다. – Casper