在Swift中,可以使用.allCases属性来枚举一个符合CaseIterable协议的枚举的所有情况。使用不同的方法,如for-in循环,reduce,filter和map函数,你可以迭代一个枚举。
什么是CaseIterable协议?
CaseIterable是一个用于迭代枚举案例的协议。它为一个枚举自动合成了所有的案例。请记住,这个协议不能应用于关联值的情况。这个协议使你能够使用一个名为allCases的计算属性来访问案例,该属性在一个集合数组中返回所有的案例。
例子
例如,如果你有一个名为MyEnum的枚举,其原始值为字符串-
enum MyEnum: String, CaseIterable {
case case1
case case2
case case3
}
下面是几个例子,说明你如何使用.allCases属性在Swift中用String原始值来枚举一个枚举 −
我们将使用以下方法在Swift中枚举一个带有字符串类型的枚举:
- 使用for-in循环
-
使用map函数来创建一个原始值的数组
使用for-in循环
你可以使用for-in循环来迭代一个枚举的情况。你可以使用枚举提供的allCases属性来迭代这些案例。
例子
enum MyEnum: String, CaseIterable {
case case1 = "First case"
case case2 = "Second case"
case case3 = "Third case"
}
for item in MyEnum.allCases {
print(item.rawValue)
}
输出
Fi

最低0.47元/天 解锁文章
25

被折叠的 条评论
为什么被折叠?



