从这篇文章,你将学习到 Swift 的嵌套类型,让我们开始吧。

Swift Nested Types

一个实际的例子

对于音乐所属的流派应该是几个固定值,下面定义的 Music 类,在其中还定义了嵌套的枚举类型 GenreGenre 是针对 Music 而言的,所以不放在全局,做为嵌套类型放在 Music 中很合适。

struct Music {
  
  enum Genre: String {
    case pop
    case rock
    case jazz
  }
  
  enum AudioFormat: String {
    case mp3
    case wav
  }
  
  let name: String
  let singer: String
  let genre: Genre
  let audioFormat: AudioFormat
  
}

let blankSpace = Music(name: "Blank Space", singer: "Tyler Swift",
                       genre: .pop, audioFormat: .mp3)

引用嵌套类型

当然,不仅仅在 Music 中可以使用 Genre,在外部也是可以的。

let pop = Music.Genre.pop.rawValue