私はRubyでリフレクティブメソッドを使用しようとしていますが、本当に驚いた動作に遭遇しました。
次の例は、IRBとルビースクリプトと呼ばれる場合で動作が異なるようです。
例1:
def myfun; end
p respond_to?(:myfun)
IRbでは、これは「true」、スクリプトでは「false」と言います。
例2:
ml = methods
def myfun; end
p methods - ml
IRbでは、これは[:myfun]と言います。スクリプト内:[]。
これは1.8、1.9 MRI、JRuby 1.5.6などで見つかりました。したがって、これは正常であると思います。
なぜ違いがあるのですか?
私はかなり確信していました'respond_to?' メソッドが利用可能かどうかを確認する方法はあります-上記の場合にそれが機能しないのはなぜですか?