我有一个这样的对象
class SomeObject
def initialize &block
# do something
end
end
class AnotherObject < SomeObject
def initalize &block
super
# do something with block
end
end
当 AnotherObject
中调用 super
时,该 block 似乎被传递给 SomeObject
。这是正确的行为吗?
最佳答案
根据 rubyspec这是正确的行为,即使您将显式参数传递给 super(即 super('foo')
)
如果你不想传递那个 block ,你可以只传递一个什么也不做的 block ,尽管这不是完全一样的东西(例如,如果方法根据 block_given?
改变它的行为)
看来
super(&nil)
是一种完全不传递 block 给 super 的方法,尽管我在 ruby 规范中找不到它。
关于ruby - block 和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100673/