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. (: