Topic says it all.
Thanks
An instance of Vector{T}
object is an Array{T,1}
, but Vector{T}
itself is a DataType
.
julia> typeof(Vector{Any})
DataType
julia> typeof(Vector{Any}())
Array{Any,1}
julia> typeof(ans)
DataType
I see, then Unions are not DataTypes.
julia> Vector isa DataType
false
julia> Vector{Any} isa DataType
true
Seems you are right,
julia> typeof(Vector) |> supertype
Type{T}
julia> Vector isa Type
true
julia> Vector{Any} isa Type
true
They are of type Type
instead of DataType
.
Correct; a type like Vector{Int}
is a DataType
because it has concrete properties like memory layout. Vector
on the other hand expresses the union of Vector{T}
types for all values of T
, so it’s a more abstract concept.
5 Likes