Ruby下用respond_to?检查一个全局函数方法是否存在

673 查看

写了那么久Ruby,之前还真没弄明白过原来全局定义的函数最终是落在Object类里,而且是作为private_method存在的,比如定义一个全局函数foo:

def foo
end

此刻用respond_to?("foo")去检查,返回值是false,需要给respond_to?加第二个参数true表示同时也检查私有方法才行,就像这样:respond_to?("foo", true)