Parametric types and methods

An array can take elements of different types, so, we can have, for example, arrays of the following types: Array{Int64,1}, Array{Int8,1}, Array{Float64,1}, or Array{ASCIIString, 1}, and so on. That is why an Array is a parametric type; its elements can be of any arbitrary type T, written as Array{T, 1}.

In general, types can take type parameters, so that type declarations actually introduce a whole family of new types. Returning to the Point example of the previous section, we can generalize it to the following:

   # see the code in Chapter 6\parametric.jl
type Point{T}
  x::T
  y::T
end

(This is conceptually similar to generic types in Java or templates in C++).

This abstract type creates a whole family of new possible concrete ...

Get Getting Started with Julia 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.