关键字参数 - 函数

Ped*_*ael 1 julia

我是朱莉娅的初学者,

如何创建带参数关键字的函数而不必在函数中初始化这些参数?

一个非常简单的例子:

function f(;a = 1, b = 2)
 a+b
end
Run Code Online (Sandbox Code Playgroud)

我想要做:

function f(;a, b)
 a+b
end
Run Code Online (Sandbox Code Playgroud)

最好的祝福.

Mat*_* B. 6

这是0.7版本中的新功能 - 您实际上可以按照自己的意愿编写它.

版本0.6和先前版本的Julia语法要求您为它们提供默认值,但由于在调用时评估该默认值,您实际上可以使用错误函数来要求它们:

julia> function f(;a=error("a not provided"), b=error("b not provided"))
        a+b
       end
f (generic function with 1 method)

julia> f()
ERROR: a not provided
Stacktrace:
 [1] f() at ./REPL[1]:2

julia> f(a=2)
ERROR: b not provided
Stacktrace:
 [1] (::#kw##f)(::Array{Any,1}, ::#f) at ./<missing>:0

julia> f(a=2, b=3)
5
Run Code Online (Sandbox Code Playgroud)