# 型のネスト

Swiftでは、クラス、構造体、列挙型の中にさらにネストして型を定義することができます。ネストの階層には制限がないので、ネストした型にさらにネストした型を定義できます。

# 型のネストの定義方法

型のネストは、型の中にさらに別の型を記述することで定義できます。

次の例では、構造体の中に列挙型と構造体をネストさせています。

struct Person {
  enum Height {
    case Tall, Normal, Short
  }

  struct Health {
    enum BloodType {
      case A, B, O, AB
    }
  }
}

ネストした型にアクセスするには、 型.ネストした型 でアクセスすることができます。ネストされた型はネスト元の型の名前を記述できるため、名前を簡潔にできるメリットがあります。

Person.Height.Tall          // Tall
Person.Height.Short         // Short
Person.Health.BloodType.A   // A