Julia 如何检查特定类型的方法是否存在?

Julia 如何检查特定类型的方法是否存在?,julia,Julia,更新:感谢@rickhg12s指出我可能偶然发现了一个bugmethod\u exists(事实证明,method\u exists是(目前)检查特定类型的方法是否存在的最佳方法,但需要非常小心。我上面的示例碰巧遇到一些稍微令人困惑的问题(但内部一致)朱莉娅的内在行为。如果你还感兴趣,请继续阅读 @rickhg12s在对问题的评论中指出,method_存在(有趣的是,a生成ERROR:MethodError:`isless``没有与

更新:感谢@rickhg12s指出我可能偶然发现了一个bug
method\u exists(事实证明,
method\u exists
是(目前)检查特定类型的方法是否存在的最佳方法,但需要非常小心。我上面的示例碰巧遇到一些稍微令人困惑的问题(但内部一致)朱莉娅的内在行为。如果你还感兴趣,请继续阅读


@rickhg12s在对问题的评论中指出,
method_存在(有趣的是,
a
生成
ERROR:MethodError:`isless``没有与
中的isless(::MyType,::MyType)匹配的方法,
method_存在(isless,(MyType,MyType))
generations
false
@rickhg12s非常有趣,非常感谢。所以我可能偶然发现了一个bug。你在v0.4上吗?我在v0.3.x上,所以我不想提出问题,除非我能确认这仍然是v0.4上的问题。是的,我是Github主分支的负责人。@rickhg12hs非常感谢。我已经提出了一个问题。@rickhg12hs-Huh.Turns指出,这种行为是预期的(尽管开发人员同意,乍一看肯定令人困惑)。我已将我在github问题上得到的回答转换为下面的答案。为您的帮助干杯并感谢。是否存在类似method_的函数,也检查函数的返回类型?类似
method_的函数是否存在(name,args,return_type)
@Nozdrum我不知道,而且这样的函数很难编写,因为一些Julia函数有多个返回类型。我知道提取此类信息的唯一方法是通过它进行静态分析,但在运行时动态使用会非常棘手。
method_exists(<, (Int, Int))
type MyType; end
method_exists(<, (MyType, MyType))
a = MyType()
a < a