Tuples in Swift, Advanced Usage and Best Practices

Creating and Accessing Tuples

released Fri, 01 Mar 2019
Swift Version 5.0

The absolute Basics

A tuple can combine different types into one. Where an array is a sequence of a certain type (let x: [Int] = [1, 2, 3, 4, 5]) a tuple can have a different type for each element: let x: (Int, Double, String) = (5, 2.0, "Hey").

Tuples are a very simple manner of grouping related data items together without having to create a struct.

They are value types and even though they look like sequences they aren't. One main difference is that you can't easily loop over the contents of a tuple.

We'll start with a quick primer on how to create and use tuples.

Creating and Accessing Tuples

// Constructing a simple tuple
let tuple1 = (2, 3)
let tuple2 = (2, 3, 4)

// Constructing a named tuple
let tupl3 = (x: 5, y: 3)

// Different types
let tuple4 = (name: "Carl", age: 78, pets: ["Bonny", "Houdon", "Miki"])

Once you've created some tuples, you can access their elements:

// Accessing tuple elements
let tuple5 = (13, 21)
tuple5.0 // 13
tuple5.1 // 21

// Access by name
let tuple6 = (x: 21, y: 33)
tuple6.x // 21
tuple6.y // 33

Nice, so now you can create tuples and access their elements. But what would you use them for? The use case we will discuss is for pattern matching.