調べ物をしてた時に、enumの中に返り値のない関数みたいなのが出てきて意味わかんなかったけど、調べたのでメモしたわけです

associated value というそうです。

今回Navigation Stackの使い方を調べていた時に出てきた以下のコードの意味がわからんかったわけだ

enum Route: Hashable {
    case detail
    case user(id: String)
    case web(url: URL)
}

detailはいいとして、userとwebのその関数みたいなやつはなんや…?と色々調べたら、
associated valueというものらしい。ふぅん。

以下のような感じで使うらしい

let unko:Route = Route.user(id:"unkoburi")

switch unko{
 case .detail
  print("detail")

 case .user(id:let id):
  print("user_\(id)")

 case .web(url:let uu):
  print("web \(uu)")

}


////結果
user_unkoburi

なるほど、こうやって中身を取り出すことができたんですね。理解しました。

よくわからんが覚えた

コメント