Is ::Array{Any, 1} the correct annotation?
>> hello(v::Vector{Any}) = println("Hello")
>> hello([2,'a'])
Hello
>> hello([2,2])
ERROR: MethodError: no method matching hello(::Array{Int64,1})
in eval(::Module, ::Any) at /usr/local/Cellar/julia/HEAD/lib/julia/sys.
dylib:-1
It only works for vectors that are specifically of type Vector{Any}.
Vector{Int64} is not a subtype of Vector{Any}.
This works, however, even though Vector is not a subtype of Vector{Any}:
>> goodbye(v::Vector) = println("bye, bye")
goodbye (generic function with 1 method)
>> goodbye([2,'a'])
bye, bye
>>> goodbye([2,2])
bye, bye
On Tuesday, May 24, 2016 at 7:22:53 PM UTC+2, Tamas Papp wrote:
>
> You are mixing up the constructor and the type syntax. Just use
> Vector{Any} in the type definition.
>
> On Tue, May 24 2016, Andreas Lobinger wrote:
>
> > I tend to agree with you, however...
> >
> > julia> d = Any[]
> > 0-element Array{Any,1}
> >
> > julia> type d1
> > name::AbstractString
> > content::Any[]
> > end
> > ERROR: TypeError: d1: in type definition, expected Type{T}, got
> Array{Any,1}
> >
> > On Tuesday, May 24, 2016 at 7:11:50 PM UTC+2, Stefan Karpinski wrote:
> >
> > Since Julia 0.4 [] is what you're looking for.
> >
> > On Tue, May 24, 2016 at 1:06 PM, Andreas Lobinger <[email protected]>
> wrote:
> >
> > Hello colleagues,
> >
> > it really feels strange to ask this, but what is the julia equivalent
> of python's list?
> >
> > So.
> >
> > 1 can by initialised empty
> > 2 subject of append and extend
> > 3 accepting Any entry
> > 4 foolproof usage in type definition... (my real problem seems to be
> here)
> >
> > Wishing a happy day,
> >
> > Andreas
>
>