允许别名用于关键字参数的好方法是什么。说我想要这样的界面:
function f(a, b; k1=1, k2=2)
println(a, b)
println(k1, k2)
end
function f(a, b; key1=1, key2=2)
println(a, b)
println(key1, key2)
end
function f(a, b; kw1=1, kw2=2)
println(a, b)
println(kw1, kw2)
end
function f(a, b; keyword1=1, keyword2=2)
println(a, b)
println(keyword1, keyword2)
end
因此您可以致电f(1, 2, kw1=3, kw2=4)
或f(1, 2, keyword1=3, keyword2=4)
并运行相同的功能。
答案 0 :(得分:5)
我真的建议避免这种情况,但你可以"级联"关键字在一起,按照定义顺序从左到右:
julia> function f(a, b; k1=1, k2=2, key1=k1, key2=k2, keyword1=key1, keyword2=key2)
println(a, b)
println(keyword1, keyword2)
end
f (generic function with 1 method)
julia> f(1,2,k1=3,k2=4)
12
34
julia> f(1,2,key1=3,k2=4)
12
34
julia> f(1,2,key1=3,keyword2=4)
12
34
请注意,您在定义中设置优先顺序:
julia> f(1,2,key1=3,k1=4)
12
32