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