LoginSignup
23
16

More than 5 years have passed since last update.

ネストされたenumの使い方のサンプルです。
.tokyo(.ebisu)こんな感じで使用することができるので直感的ですね。
他にも良い書き方があれば気軽にコメントお願いします。

enum Japan {
    enum Tokyo: String {
        case shibuya, shinagawa, ebisu
    }
    enum Kanagawa: String {
        case yokohama, kawasaki, sagamihara
    }
    case tokyo(Tokyo)
    case kanagawa(Kanagawa)
}

func sayPlace(_ placeType: Japan) {
    let place: String = {
        switch placeType {
        case .tokyo(let place):    return place.rawValue
        case .kanagawa(let place): return place.rawValue
        }
    }()
    print("\(place)!!!")
}

sayPlace(.tokyo(.ebisu)) // ebisu!!!
sayPlace(.kanagawa(.yokohama)) // yokohama!!!
sayPlace(.kanagawa(.sagamihara)) // sagamihara!!!
23
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
16