我在这里找到了一个看起来像迭代枚举的优雅解决方案:How to enumerate an enum with String type?
接下来,我无法确定如何调用此方法。从表面上看,它看起来不像需要参数,但是当我尝试调用 Card.createDeck() 时,我收到一个编译器错误,告诉我“错误:调用中参数 #1 缺少参数”。
请让我知道我在这里做错了什么?我应该将什么传递给此方法?
struct Card {
var rank: Rank
var suit: Suit
func simpleDescription() -> String {
return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
}
func createDeck() -> [Card] {
var deck = [Card]()
var n = 1
while let rank = Rank.fromRaw(n) {
var m = 1
while let suit = Suit.fromRaw(m) {
deck += Card(rank: rank, suit: suit)
m++
}
n++
}
return deck
}
}
最佳答案
createDeck()
是一个实例方法。执行 Card.createDeck()
是对不存在的类方法的调用。
class func
- 用于类方法
编辑:
我误读它是一个结构,但同样的逻辑适用。
static func
- 用于静态方法
关于methods - 从 struct 中快速调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046226/