Sobes.tech
Junior

How do you create an enumerable type that contains different values?

sobes.tech AI

Answer from AI

Using associated values.

enum Transport {
    case car(make: String, model: String)
    case bike(type: String, gears: Int)
    case publicTransport(route: String, line: String)
}

let myCar = Transport.car(make: "Toyota", model: "Camry")
let commutersTrain = Transport.publicTransport(route: "Suburban", line: "A")

These associated values can be extracted using switch or if case.

switch myCar {
case .car(let make, let model):
    // Extract make and model
    print("Car: \(make) \(model)")
case .bike(let type, let gears):
    print("Bike: \(type) with \(gears) gears")
case .publicTransport(let route, let line):
    print("Public Transport: Route \(route), Line \(line)")
}