https://docs.swift.org/swift-book/LanguageGuide/NestedTypes.html
上記ページを読んでいて、Nested typeを使わないとどうなるのか、全部外に出してやってみたんですが、
struct Values { let first: Int, second: Int? } enum Suit: Character { case spades = "♠", hearts = "♡", diamonds = "♢", clubs = "♣" } enum Rank: Int { case two = 2, three, four, five, six, seven, eight, nine, ten case jack, queen, king, ace var values: Values { switch self { case .ace: return Values(first: 1, second: 11) case .jack, .queen, .king: return Values(first: self.rawValue, second: nil) default: return Values(first: self.rawValue, second: nil) } } } struct BlackjackCard { let rank: Rank, suit: Suit var description: String { var output = "suit is (suit.rawValue)," output += " value is (rank.values.first)" if let second = rank.values.second { output += " or (second)" } return output } } let a = BlackjackCard(rank: .ace, suit: .diamonds) print("theAceOfSpades: (a.description)") //theAceOfSpades: suit is ♢, value is 1 or 11
普通に動きました。Nested typeを使うメリットというのは、
入れ子にしてまとめた方が、読み手が、この型の中で使う型なんだな、というのがわかりやすい、
つまりコードが読みやすい。
ということだけでしょうか?ページの一番最後に、この書き方で入れ子の型のケースが参照できて、便利ですね。
みたいなことも書いてあり、それも一応メリットだとは思うのですが、
「この場合はNested typeを使わないとできない」みたいなことはなくて、
ただコードが読みやすい、わかりやすい、ということだけでしょうか?
もちろんコードがわかりやすいのは非常に重要なことだと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/04 06:31