我想写两个数值数量、类型完全相同的函数。但是我想用关键字来作为区别。
julia> function fun(x, y; b::Float64)
(x+y)*b
end
fun (generic function with 1 method)
julia> function fun(x, y; a::Int)
(x+y)+a
end
fun (generic function with 1 method)
julia> fun(1, 1, a=1)
3
julia> fun(1, 1, b=1.0)
ERROR: UndefKeywordError: keyword argument a not assigned
Stacktrace:
[1] top-level scope
@ REPL[28]:1
可以看到后定义的函数把第一个给冲掉了。
然而,我看到range
函数有这个功能:
julia> range(1, step=5, length=100)
1:5:496
julia> range(1, step=5, stop=100)
1:5:96
我希望的效果就是这样。