On Sat, Jan 9, 2016 at 1:11 PM, Alexandr <[email protected]> wrote: > Hello, > > I am trying to define the type of the input vector to be either Int or > Float. In order to do that I defined a union: > > IntOrFloat = Union{Int, AbstractFloat} > > Next I write to functions definitions which I expected to be equivalent: > > #-------------------------------------# > function f1(v::Array{IntOrFloat,1}) > mean(v) > end > println( f1([1.0, 2.0]) ) > println( f1([1, 2]) ) > > function f2(v::Vector{IntOrFloat}) > mean(v) > end > println( f2([1.0, 2.0]) ) > println( f2([1, 2]) ) > #-------------------------------------# > > But when I run it I see an error: > > ERROR: LoadError: MethodError: `f2` has no method matching > f2(::Array{Float64,1}) > > Why is that? > Vector{} and Array{...,1} are equivalent: > > julia> Array{IntOrFloat,1}==Vector{IntOrFloat} > true
Which version are you using? `f1` shouldn't match either and it's a bug if it does. > > -- > Alexandr
