像这样的声明是合法的:
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
我无法看到此类声明的作用/目标。
问题:是否有说明性用例?
答案 0 :(得分:4)
Empty generic functions部分的Julia手册对原因进行了解释。主要有两个用途:
可以看到randn!
和randexp!
的定义的典型用例。首先定义空的泛型函数,并与文档字符串结合使用。这些函数的下一个方法是动态定义的。
另一个类似的例子是定义randstring
。
最后看一下strides
函数。它在 abstractarray.jl 中定义为空泛型函数,然后在同一文件中使用。但是在此文件中没有为此函数定义任何方法,其他文件例如 dense.jl 或 subarray.jl 定义此类方法。