The type hierarchy – subtypes and supertypes

In Julia, every value has a type, for example, typeof(2) is Int64 (or Int32 on 32-bit systems). Julia has a lot of built-in types, in fact, a whole hierarchy starting from the type Any at the top. Every type in this structure also has a type, namely, DataType, so it is very consistent. typeof(Any), typeof(Int64), typeof(Complex{Int64}), and typeof(DataType) all return DataType. So, types in Julia are also objects; all concrete types, except tuple types, which are a tuple of the types of its arguments, are of type DataType.

Follow along with the code in type_hierarchy.jl.

This type hierarchy is like a tree; each type has one parent given by the supertype function:

  • supertype(Int64) returns Signed ...

Get Julia 1.0 Programming now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.