我是朱莉娅的初学者,
如何创建带参数关键字的函数而不必在函数中初始化这些参数?
一个非常简单的例子:
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)
最好的祝福.
这是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)