如何获取类型的所有方法

时间:2016-07-25 09:40:22

标签: julia

我有一个类型T,如何在REPL中获取所有专门针对此类型的方法?我的动机是T是在一个包中定义的,从源代码中可能不容易看到我想用T 做什么。

总之,我想要像

这样的东西
functions(T)

因为methods已经存在,但它需要我想要找到的函数

1 个答案:

答案 0 :(得分:25)

您需要使用methodswith(T)

help?> methodswith
search: methodswith

  methodswith(typ[, module or function][, showparents])

  Return an array of methods with an argument of type typ. If optional showparents
  is true, also return arguments with a parent type of typ, excluding type Any.

  The optional second argument restricts the search to a particular module or
  function.

julia> type Foo end

julia> methodswith(Foo)
0-element Array{Method,1}

julia> foo(::Foo) = nothing
foo (generic function with 1 method)

julia> methodswith(Foo)
1-element Array{Method,1}:
 foo(::Foo) at none:1