Julia “函数foo end”函数声明的用例?

Julia “函数foo end”函数声明的用例?,julia,Julia,这样的声明是合法的: julia> function foo end foo (generic function with 0 methods) 但是,除了用于集中文档的占位符之外,我甚至不确定: module Foo """ foo(...) functions - foo(n::Int) : do something - foo(n::Int,m::Int) : do other thing """ function foo end 我看不出这种声明的作用/目标 问题:

这样的声明是合法的:

julia> function foo end
foo (generic function with 0 methods)
但是,除了用于集中文档的占位符之外,我甚至不确定:

module Foo

"""
    foo(...) functions

- foo(n::Int) : do something
- foo(n::Int,m::Int) : do other thing
"""
function foo end
我看不出这种声明的作用/目标


问题:有说明性的用例吗?

在Julia手册的第节中解释了原因。主要有两种用途:

简化文档或提高代码可读性; 将接口定义与实现分离。 可以看到randn定义的典型用例!还有randexp!。首先定义空泛型函数,并将其与文档字符串耦合。这些函数的下一个方法是动态定义的

另一个类似的例子是定义randstring


最后看一下跨步函数。它在abstractarray.jl中定义为空泛型函数,然后在同一文件中使用。但是此文件中没有为此函数定义任何方法,其他文件(如dense.jl或subarray.jl)定义了此类方法。

我想如果您使用foo编写库,并希望用户填写所需的方法,这会很有用,但提供任何默认实现是没有意义的。感谢您的反馈。这也是我的感觉。看@BogumiłKamiński我没有看到医生的这一部分,是我的错!如果你想写一个简短的回答,我会接受的。