Как получить все методы для типа - программирование

Как получить все методы для типа

У меня есть тип T, как я могу получить все методы, специализированные для этого типа в REPL? Моя мотивация заключается в том, что T определяется в пакете, и может быть нелегко понять, что я хотел сделать с T из исходного кода.

В общем, я хотел бы что-то вроде

functions(T)

как methods уже существует, но для этого требуются функции, которые я хочу узнать о

4b9b3361

Ответ 1

Вам нужно использовать 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