Enums and Pattern Matching
Associated Values
Enum cases can carry data that belongs to that case.
Store data with a case
associated_values.swift
enum Measurement {
case centimeters(Int)
case inches(Int)
}
let useMetric =
let measurement: Measurement
if useMetric {
measurement = Measurement.centimeters(30)
} else {
measurement = Measurement.inches(12)
}
var label = ""
switch measurement {
case Measurement.centimeters(let value):
label = "cm=\(value)"
case Measurement.inches(let value):
label = "in=\(value)"
}
print("useMetric=\(useMetric)")
print(label)
enum Measurement {
case centimeters(Int)
case inches(Int)
}
let useMetric =
let measurement: Measurement
if useMetric {
measurement = Measurement.centimeters(30)
} else {
measurement = Measurement.inches(12)
}
var label = ""
switch measurement {
case Measurement.centimeters(let value):
label = "cm=\(value)"
case Measurement.inches(let value):
label = "in=\(value)"
}
print("useMetric=\(useMetric)")
print(label)
associated values
Associated values keep related data inside the enum value so each case can carry the information it needs.