Using associated values effectively
Good programming is about more than just grand, universal concepts of how to write effective code. The best programmers know how to play to the strengths of the tools at hand. We will now move from the core tenants of programming design to some of the gritty details of how to enhance your code with the power of Swift.
The first thing we will look at is how to make effective use of the associated value of an enumeration. Associated values are pretty unique features of Swift, so they open up some pretty interesting possibilities.
Replacing class hierarchies
We already saw in Chapter 3, One Piece at a Time – Types, Scopes, and Projects that we can use an enumeration with associated values to represent a measurement like distance in multiple measurement systems:
enum Height { case Imperial(feet: Int, Inches: Double) case Metric(meters: Double) case Other(String) }
We can generalize this use case using an enumeration to flatten out a simple class hierarchy...