Using Associated Values in Swift for Versatile Data Structures

A portrait painting style image of a pirate holding an iPhone.

by The Captain

April 16, 2024
Working with Associated Values in Swift

Working with Associated Values in Swift

In Swift, enums can have associated values, allowing you to attach additional data to enum cases. This is a powerful feature that enables you to create flexible and expressive data structures.


Let's consider a simple example of an enum called Measurement, which represents different types of measurements along with their associated values:

enum Measurement {
    case length(Double)
    case weight(Double)
    case temperature(Double)

let lengthMeasurement = Measurement.length(10.5)
let weightMeasurement = Measurement.weight(25.7)
let temperatureMeasurement = Measurement.temperature(98.6)}


You can use associated values to store specific data relevant to each enum case. In the example above, each type of measurement is associated with a specific value, such as the length in meters, weight in kilograms, or temperature in Celsius degrees.

Pattern Matching:

You can extract and manipulate associated values using pattern matching. For example, to extract the value of a length measurement, you can use a switch statement like this:

switch lengthMeasurement {
case .length(let value):
    print("The length is \(value) meters.")
case .weight(let value):
    print("The weight is \(value) kilograms.")
case .temperature(let value):
    print("The temperature is \(value) degrees Celsius.")


Working with associated values allows you to create versatile data types that can represent a wide range of values and behaviors. It enables you to model complex scenarios in a clean and concise way, making your code more readable and maintainable.