前端之家收集整理的这篇文章主要介绍了
ruby – 块和对象,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个像这样的对象
class SomeObject
def initialize &block
# do something
end
end
class AnotherObject < SomeObject
def initalize &block
super
# do something with block
end
end
当在AnotherObject中调用super时,该块似乎被传递给SomeObject.这是正确的行为吗?
根据
rubyspec,这是正确的行为,即使你将显式参数传递给super(即super(‘foo’))
如果你不想传递那个块,你可以传递一个什么也不做的块,虽然这不是一回事(例如,如果方法根据block_given改变它的行为?)
看起来
super(&nil)
虽然我在ruby规范中找不到这个,但是这是一种完全不通过块的方法.
原文链接:https://www.f2er.com/ruby/265228.html