I recently just discovered how to do type check in Julia, and I was just wondering what the convention is, and what differences are the two methods.
Say I have a variable vec1
of type Vector{<:Number}
. If I understand it correctly, this should include vectors that contains of only numbers (integers, complex, floating point, etc, but not strings). Now if I have, more concretely, vec1
is of type Vector{Int64}
, then the following will return true:
typeof(vec1) <: Vector{<:Number}
vec1 isa Vector{<:Number}
vec1 isa Vector{Int64}
typeof(vec1) == Vector{Int64}
But not the following:
typeof(vec1) <: Vector{Number}
vec1 isa Vector{Number}
typeof(vec1) == Vector{Number}
Which of the correct syntax (ones that return true) is the conventional way of doing the type check? Are they equivalent, or are there any differences? Also, I understand that Vector{Number}
is a type consist of any number type (i.e. we can view it as a singleton set), hence when we write Vector{Int64} <: Vector{Number}
, it will return false
. Is my understanding correct?
Thanks a lot in advance. (: