展示Julia中函数的所有方法

20

如何在Julia(多分派)中显示一个函数的所有方法

例如,显示函数abs在命名空间中存在的所有方法。

1个回答

23

methods 函数将返回指定函数的方法表

julia> methods(abs)
# 13 methods for generic function "abs":
[1] abs(a::Pkg.Resolve.FieldValue) in Pkg.Resolve at /home/david/pkg/julia-bin/julia-1.4.0-rc1/share/julia/stdlib/v1.4/Pkg/src/Resolve/fieldvalues.jl:61
[2] abs(a::Pkg.Resolve.VersionWeight) in Pkg.Resolve at /home/david/pkg/julia-bin/julia-1.4.0-rc1/share/julia/stdlib/v1.4/Pkg/src/Resolve/versionweights.jl:36
[3] abs(::Missing) in Base at missing.jl:100
[4] abs(x::Float64) in Base at float.jl:528
...

从Julia 1.4开始,您可以按模块过滤方法表。例如,列出在Dates模块中定义的abs方法:
julia> methods(abs, Dates)
# 1 method for generic function "abs":
[1] abs(a::T) where T<:Dates.Period in Dates at /home/david/pkg/julia-bin/julia-1.4.0-rc1/share/julia/stdlib/v1.4/Dates/src/periods.jl:95

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接