【发布时间】:2018-06-04 07:11:26
【问题描述】:
我有一个 Duck 类,它的 initialize 方法会产生一个块:
class Duck
def initialize()
if block_given?
yield(self)
end
end
end
还有一个类 TalkingDuck 在初始化时迎接程序员。
class TalkingDuck < Duck
def initialize()
super()
puts 'I am a duck'
end
end
当我用一个块调用构造函数TalkingDuck.new 时,我不希望这个块被执行。这个:
TalkingDuck.new { puts 'Quack' }
应该只打印I am a duck,而不是Quack。如何防止块被执行?
【问题讨论】:
-
查看@Stefan 的精彩回答here。
标签: ruby