swift 4.2 官方文档学习笔记(七)- Enumeration

Sellen Wei
2 min readDec 15, 2018

--

Enumeration 在swift中有很多灵活的应用,在这一章会好好做个总结。

  1. 枚举的声明和使用,和objc将每个枚举成员直接定义成Integer不同,swift中的成员变量可以定义为字符串、字符、任意的整数值,或者是浮点类型,所以需要单独声明他们的原始值。

2. 如何对emun进行遍历或者count?enum本身是没有这样的函数去计数有几个成员或者遍历每个成员变量的, 需要使用caseIterable协议

3. 关联值,关联值是在使用枚举成员变量的同时添加一些相关的值,这样在以后使用的时候,不仅仅有类型,还有值储存在变量中,使用十分方便

4.原始值的初始化,以及如何从rawValue得到成员变量,这部分比较简单也很常用,就把code贴在这里,不做过多解释了:

最后还有一个递归枚举,感觉用的时候不多,先放在这里,以后有需要回看:递归枚举(中文 英文

另外 同事今天也传给我了一个很好的文章,列举了如果只需要一个case的时候应该如何正确的使用enum

update:今天mentor指出了我的一个问题, 发现我的switch使用default来遍历所有的case, 而不是用explicit case,他指出使用explicit case的方法后,未来如果有人修改我的enum,他们就会很容易的看到compile error,注意到这个相关的switch,我才恍然大悟,使用explicit的方法遍历也很简单,就是加个if let就可以了,相关代码如下:

这样就不需要default了,对于方便别人修改你的代码查错是很好的一个trick,学习了。

--

--