今朝、proc.newはクラス初期化メソッドで機能しますが、ラムダでは機能しないことがわかりました。具体的には、次のことを意味します。
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)
何故ですか?
ありがとう!