如何获得Swift枚举的计数?

如何确定Swift枚举中的个案数?


如何获得Swift枚举的计数?

米脂
浏览 598回答 3
3回答

交互式爱情

我有一篇博文,详细介绍了这一点,但只要您的枚举的原始类型是整数,您就可以这样添加计数:enum Reindeer: Int {    case Dasher, Dancer, Prancer, Vixen, Comet, Cupid, Donner, Blitzen    case Rudolph    static let count: Int = {        var max: Int = 0        while let _ = Reindeer(rawValue: max) { max += 1 }        return max    }()}

慕村225694

Xcode 10更新CaseIterable在枚举中采用协议,它提供一个静态allCases属性,其中包含所有枚举案例Collection。只需使用其count属性即可知道枚举有多少个案例。请参阅马丁的答案以获得一个例子(并提出他的答案,而不是我的答案)警告:以下方法似乎不再起作用。我不知道有任何通用方法来计算枚举案例的数量。然而,我注意到hashValue枚举案例的属性是增量的,从零开始,并且顺序由声明案例的顺序决定。因此,最后一个枚举的散列加一个对应于个案的数量。例如,使用此枚举:enum Test {    case ONE    case TWO    case THREE    case FOUR    static var count: Int { return Test.FOUR.hashValue + 1}}count 返回4。我不能说这是一个规则还是将来会改变,所以使用风险自负 :)
打开App,查看更多内容
随时随地看视频慕课网APP