首先创建并激活一个示例 module:
julia> using Revise
(v1.0) pkg> generate Example
Generating project Example:
Example\Project.toml
Example/src/Example.jl
(v1.0) pkg> activate Example
打开编辑器,更改 Example.jl 为:
module Example
greet() = print("Hello World!")
abstract type AbstractA end
foo(x::AbstractA, y::Integer) = 1
end # module
REPL 中 foo 的 methods 为:
julia> using Example
julia> methods(Example.foo)
# 1 method for generic function "foo":
[1] foo(x::Example.AbstractA, y::Integer) in Example at
在编辑器里,注释掉这一行 foo:
module Example
greet() = print("Hello World!")
abstract type AbstractA end
# foo(x::AbstractA, y::Integer) = 1
end # module
REPL 中 foo 的 methods 为:
julia> methods(Example.foo)
# 0 methods for generic function "foo":
可以正常删除。
继续修改为:
module Example
greet() = print("Hello World!")
abstract type AbstractA end
struct B <: AbstractA end
foo(x::B, y::Integer) = 1
end # module
REPL 中 foo 的 methods 为:
julia> methods(Example.foo)
# 1 method for generic function "foo":
[1] foo(x::Example.B, y::Integer) in Example at
@Roger 这个是正常预期的 behavior