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? >