在阅读关于一副卡片的教程here时,我发现:
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 "♥️"
}
}
}
我无法找到有关此语法的任何文档。它是否有名称或在官方文档或任何其他地方描述?感谢您的任何贡献。
答案 0 :(得分:3)
这本身并不是任何特殊的语法。这是两个不同的事情:
数组文字,["♣️", "♦️", "❤️", "♠️"]
,Array<String>
a.k.a。[String]
数组下标语法:myArray[i]
或在这种情况下为array[rawValue - 1]
,其中array
是来自#1的文字。
["♣️", "♦️", "❤️", "♠️"][rawValue - 1]
仅表示该数组的rawValue - 1
条目。它依赖于枚举是用enum Suit: Int
声明的事实,因此每个值都有一个基础rawValue
。
答案 1 :(得分:2)
C:/Users/Me/Documents/CApplicationTemplate.xlsx
不是特殊语法。以下是它将如何分解:
["♣️", "♦️", "❤️", "♠️"][rawValue - 1]