如何在 Swift 中初始化包含枚举数组的结构数组?
How can I initialize an array of structs containing enum arrays in Swift?
我试图将 Pascal 程序翻译成包含嵌套数据结构的 Swift 程序。我无法初始化数组,请指教我应该如何编写这个示例。
enum KW: Int {case XXXX=0,YYYY,ZZZZ}
let numCards = 49
typealias Card = [KW]
struct KSet {
var k1: Card
var k2: Card
}
var cards: [KSet] = []
func rotate(k:Card) -> Card {
return([k[2],k[0],k[3],k[1]])
}
func initOne(k: Card) {
cards.append(k1:k,k2:rotate(k)) // <– does not compile
}
initOne([.XXXX, .YYYY, .ZZZZ, .XXXX])
修改
cards.append(k1:k,k2:rotate(k))
阅读
cards.append(KSet(k1:k,k2:rotate(k)))
您应该像这样插入标签 k
cards.append(KSet(k1:k,k2:rotate(k: k)))
initOne(k: [.XXXX, .YYYY, .ZZZZ, .XXXX])
或者如果你想省略它,
func rotate(_ k:Card) -> Card
func initOne(_ k: Card)
我试图将 Pascal 程序翻译成包含嵌套数据结构的 Swift 程序。我无法初始化数组,请指教我应该如何编写这个示例。
enum KW: Int {case XXXX=0,YYYY,ZZZZ}
let numCards = 49
typealias Card = [KW]
struct KSet {
var k1: Card
var k2: Card
}
var cards: [KSet] = []
func rotate(k:Card) -> Card {
return([k[2],k[0],k[3],k[1]])
}
func initOne(k: Card) {
cards.append(k1:k,k2:rotate(k)) // <– does not compile
}
initOne([.XXXX, .YYYY, .ZZZZ, .XXXX])
修改
cards.append(k1:k,k2:rotate(k))
阅读
cards.append(KSet(k1:k,k2:rotate(k)))
您应该像这样插入标签 k
cards.append(KSet(k1:k,k2:rotate(k: k)))
initOne(k: [.XXXX, .YYYY, .ZZZZ, .XXXX])
或者如果你想省略它,
func rotate(_ k:Card) -> Card
func initOne(_ k: Card)