The type hierarchy – subtypes and supertypes
(Follow along with the code in Chapter 6\type_hierarchy.jl
.)
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
.
This type hierarchy is like a tree; each type has one parent given by the super
function:
super(Int64)
returnsSigned
super(Signed) ...
Get Julia: High Performance Programming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.