上級 › method_missing で super を呼ばないと本来のエラーが消える › パターン4
method_missing で super を呼ばないと本来のエラーが消える
method_missingを独自定義すると、未定義のメソッド呼び出しをすべて横取りできます。
1 class Duck 2 def method_missing(name, *args) 3 name == :quack ? "Quack!" : super 4 end 5 6 __________________________________________________________________________________________ ^ 7 end 8 9 d = Duck.new 10 puts d.respond_to?(:quack)
出力: false
空欄を埋めて実行を通す
d.quackを実際に呼べば動くのに、respond_to?(:quack)はfalseと答えるという矛盾が起きます。
次の問題