阅读 Julia 文档中的参数说明

Reading parameter descriptions in Julia Documentation

与 Python 文档相比,我发现 Julia 文档更难阅读。

例如,rand函数:

rand([rng=GLOBAL_RNG], [S], [dims...])

我该如何解读?括号是什么意思?哪些参数是可选的,哪些不是?

此外,在 Dense 的 Flux 文档中:

Dense(in, out, σ=identity; bias=true, init=glorot_uniform)

为什么有些参数用逗号分隔,有些参数用分号分隔?

参数是方括号 [] 是可选的 - 这是许多编程语言的文档约定 - 虽然这不是语言语法的一部分。因此 rand 的所有参数都是可选的,您可以只做 rand.

实际上,尝试在控制台中键入 methods(rand) 以查看涵盖所有此类用例所需的大量方法是个好主意:

julia> methods(rand)
# 80 methods for generic function "rand":
[1] rand() in Random at c:\Julia-1.7.2\share\julia\stdlib\v1.7\Random\src\Random.jl:257
.....

分号是语法的一部分,用于在 Julia 函数中将位置参数与命名参数分开。 作为一个例子,考虑一个函数:

function foo(a, b=4; c, d=8)
   return a+b+c+d
end

你做不到:

julia> foo(1,c=100)
113