Your problem is probably that you try to call your function with four
positional arguments, although the last two should have been named. Compare
julia> f(x, y; z=0) = x + y + z
f (generic function with 1 method)
julia> f(2, 3)
5
julia> f(2, 3, 4)
ERROR: MethodError: `f` has no method matching f(::Int64, ::Int64, ::Int64)
Closest candidates are:
f(::Any, ::Any)
julia> f(2, 3, z = 4)
9
Den torsdag 12 maj 2016 kl. 12:51:13 UTC+2 skrev Charles Ll:
>
> Dear all,
>
> There is something I did not understood well in Julia regarding the type
> fo the variables and this creates difficulties with the functions I am
> writing.
>
> For one of the functions of Spectra.jl package, I wrote for instance:
>
> function gaussianarea(Amplitude::Array{Float64},HWHM::Array{Float64};
> eseAmplitude::Array{Float64} = 0, eseHWHM::Array{Float64} = 0)
>
> I was thinking that using the ::Array{Float64} will allow users to enter
> either vectors or arrays. However, when I try to enter a vectors for
> Amplitude or HWHM for instance, I get the following error:
>
> LoadError: MethodError: `gaussianarea` has no method matching
> gaussianarea(::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1},
> ::Array{Float64,1})
> Closest candidates are:
> gaussianarea(::Array{Float64,N}, ::Array{Float64,N})
> while loading In[46], in expression starting on line 9
>
>
> I'm quite disappointed by that and don't know how to avoid it... Because
> for me a vector is an Array {Float64,1}... But the above message says no?
>
> What did I miss here?
>