Nested types

Enumerations are often created to support a specific class or structure's functionality. Likewise, it can be convenient to declare utility classes and structures purely to use within the context of a complex type.

Swift enables us to declare nested types, whereby we nest supporting enumerations, classes, and structures within the definition of the type that they support. The following example, borrowed from The Swift Programming Language by Apple Inc., presents nested types:

struct BlackjackCard {     // nested Suit enumeration     enum Suit: Character {         case spades = "♠",         hearts = "♡",         diamonds = "♢",         clubs = "♣"     }     // nested Rank enumeration     enum Rank: Int {         case two = 2, three, four, five, six, seven, eight, nine, ten 

Get Swift Functional Programming - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.