An element type specifies what kind of values a collection stores. Julia displays it when showing an array, such as `Vector{Float64}` or `Vector{Int8}`. If no type is supplied, Julia infers one from the values. section 4.6
Choose or inspect an array’s element type with familiar constructors and `eltype`:
- `ones`, `zeros`, and `rand` can receive an element type, as in `ones(Int8, 5)` or `zeros(UInt8, 4)`. section 4.6
- Prefix an array literal to require a type: `Int8[72, 69, 76, 76, 79]`. section 4.6
- Call `eltype(xs)` to inspect the element type; typical results include `Int8`, `Int64`, and `Bool`. section 4.6
Homogeneous arrays and mixed data
Arrays are intended for homogeneous data. An integer array rejects a string assignment because Julia cannot convert the string to `Int64`: `xs = [4, 5, 3]`; `xs[1] = "hi"` produces a `MethodError`. A mixed array such as `["hawaiian", 'S', 10.5]` instead has element type `Any`, allowing values of different kinds. section 4.9
Tuples preserve individual types
A pizza record can be represented as `("hawaiian", 'S', 10.5)`, whose type is `Tuple{String, Char, Float64}`. Unlike an `Any` array, the tuple records each position’s type and cannot be modified. section 4.9
