Swift“switch case”缩写语法

Swift“switch case”缩写语法,swift,Swift,在阅读关于一副卡片的教程时,我发现: enum Suit: Int, CustomStringConvertible { case Clubs = 1, Diamonds, Hearts, Spades var description: String { return ["♣️", "♦️", "❤️", "♠️"][rawValue - 1] } } 在操场上工作很好。 我理解它应该是一个简短的语法: enum Suit: Int, CustomStringConver

在阅读关于一副卡片的教程时,我发现:

enum Suit: Int, CustomStringConvertible {
  case Clubs = 1, Diamonds, Hearts, Spades

  var description: String {
    return ["♣️", "♦️", "❤️", "♠️"][rawValue - 1]
  }
}
在操场上工作很好。 我理解它应该是一个简短的语法:

enum Suit: Int, CustomStringConvertible {
  case Clubs = 1, Diamonds, Hearts, Spades

  var description: String {
    switch self {
      case .Spades:
        return "♠️"
      case .Clubs:
        return "♣️"
      case .Diamonds:
        return "♦️"
      case .Hearts:
        return "♥️"
    }
  }
}

我找不到有关此语法的任何文档。它有名字吗,或者在官方文件或任何其他地方有描述吗?感谢您的贡献。

这本身并不是什么特殊语法。这是两件不同的事情:

数组文字[♣️, ♦️, ❤️, ♠️] 它是数组a.k.a.[字符串]

数组订阅语法:myArray[i]或在本例中为Array[rawValue-1],其中Array是1中的文字


[♣️, ♦️, ❤️, ♠️][rawValue-1]仅表示该数组的第1个rawValue项。它依赖于使用enum Suit:Int声明枚举的事实,因此每个值都有一个基础rawValue。

这本身不是任何特殊语法。它是两个独立的东西:

数组文字[♣️, ♦️, ❤️, ♠️] 它是数组a.k.a.[字符串]

数组订阅语法:myArray[i]或在本例中为Array[rawValue-1],其中Array是1中的文字

[♣️, ♦️, ❤️, ♠️][rawValue-1]仅表示该数组的第1个rawValue项。它依赖于使用enum Suit:Int声明枚举的事实,因此每个值都有一个基础rawValue

不是一种特殊的语法。下面是它的分解方式:

let array: [String] = ["♣️", "♦️", "❤️", "♠️"]
let index: Int = self.rawValue - 1
let symbol = array[index]
return symbol
不是一种特殊的语法。下面是它的分解方式:

let array: [String] = ["♣️", "♦️", "❤️", "♠️"]
let index: Int = self.rawValue - 1
let symbol = array[index]
return symbol