Enumeration Case Pattern
As you saw in our trading example, pattern matching works really
great with Swift's enums. That's because enum cases are like
sealed, immutable, destructable structs. Much like with tuples, you
can unwrap the contents of an individual case right in the match and
only extract the information you need.
Imagine you're writing a game in a functional style and you have a
couple of entities that you need to define. You could use structs but
as your entities will have very little state, you feel that that's a
bit of an overkill.
enum Entities {
case soldier(x: Int, y: Int)
case tank(x: Int, y: Int)
case player(x: Int, y: Int)
}
Now you need to implement the drawing loop. Here, we only need the X and Y position:
for e in entities() {
switch e {
case let .soldier(x, y):
drawImage(\"soldier.png\", x, y)
case let .tank(x, y):
drawImage(\"tank.png\", x, y)
case let .player(x, y):
drawImage(\"player.png\", x, y)
}
}
This is the gist of it. The enumeration case pattern is really just
using enum cases in the switch statement.
