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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.