这里有一堂课
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
?