【发布时间】:2018-07-24 11:45:51
【问题描述】:
这是一堂课
class Foo
def test_method(&c)
puts "inside test method"
c.call
end
end
现在,如果我在块内定义一个方法
f = Foo.new
f.test_method do
def m1
puts "inside the method m1 defined inside the block"
end
puts m1.class
end
块的输出是NilClass
如果一个方法是在一个类之外定义的,那么它将成为类Object 内的一个私有方法。为什么在块中定义的方法会成为NilClass 的一部分,而不是Foo 类的一部分?
【问题讨论】: