Swift version: 5.6
“Enum” is short for “enumeration”, and it’s a way of letting you use fixed names for special values rather than relying on strings or integers.
For example, if we wanted to track how happy a user was, you could use a number scale where -1 meant unhappy, +1 meant happy, and 0 meant they were in between, but then the onus is on you to remember what those numbers mean. A better idea is to use an enum like this one:
enum Satisfaction {
case unhappy
case meh
case happy
}
Those cases can now be referenced as Satisfaction.happy
, so it’s clear what you mean – and internally it’s treated no different from an integer, so it has no performance impact.
We can create a Person
struct using that new enum, like this:
struct Person {
var name: String
var satisfaction: Satisfaction
}
Because Swift knows the satisfaction
property must be a value from the Satisfaction
enum we can just specify the case we want to use when creating a value:
let person = Person(name: "Taylor", satisfaction: .happy)
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.