枚举是一组具有固定值的案例语句。
本教程解释了Swift Enum的长度
enum WeekEnd {
case Saturday
case Sunday
}
print(WeekEnd.count)
它抛出了一个错误main.swift:6:15: error: type 'WeekEnd' has no member 'count' 。swift e中没有方法计数
Swift 枚举计算案例
有多种方法可以获得Swift枚举中的案例数:
- 使用CaseIterable协议
在enum中添加CaseIterable ,它提供了一个allCases 函数,返回enum案例的集合序列。你可以调用count属性来返回enum的长度:
enum WeekEnd:CaseIterable {
case Saturday
case Sunday
}
print(WeekEnd.allCases) // [main.WeekEnd.Saturday, main.WeekEnd.Sunday]
print(WeekEnd.allCases.count) // 2
- 通过实现Int添加自定义的count方法
添加静态count方法,返回Int值。使用一个while循环遍历所有的案例,并将count值递增1。
下面是一个例子
enum WeekEnd:Int {
case Saturday
case Sunday
static let count: Int = {
var max: Int = 0
while let _ = WeekEnd(rawValue: max) {
max += 1 }
return max
}()
}
print(WeekEnd.count) //2