4
今天早上我發現proc.new在類初始化方法中起作用,但不是lambda。具體而言,我的意思是: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