Swift 使用枚举协议CaseIterable遍历枚举所有值

在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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值