Swift 枚举(enum)详解

Swift 枚举(enum)详解,第1张

Swift基础语法总结,来自 苹果官方文档 :

枚举在Swift中是 first-class types。与C,Objective-C中的枚举相比,Swift中枚举功能更强大。它支持很多只有类才有的特性,如: Properties , Methods , Initialization , Extensions , Protocols

举例:

通常将单个枚举值与switch语句匹配:

当需要迭代枚举中的所有情况时,需要自定义的枚举遵守 CaseIterable 协议

我们可以定义Swift枚举来存储任何给定类型的关联值,而且每种枚举情况的值类型可以不同。

可以将关联值提取为switch语句的一部分。将每个关联值提取为常量(let)或变量(var),以便在switch中处理:

如果枚举case的所有关联值都被提取为常量,或者都被提取为变量,则可以将var或let放置在case名称前面,来提取所有的关联值:

“ 关联值 ”表明了枚举如何存储不同类型的关联值。作为关联值的替代,枚举情况可以预先设置默认值(称 原始值 ),它们都是相同的类型。

原始值可以是字符串,字符,整数或浮点数类型。每个原始值在其枚举声明中必须是唯一的。

当使用存储整数或字符串原始值的枚举时,不必为每种case显式分配原始值,Swift将自动为其分配值。如果使用整数为原始值,则每个case的原始值依次自增1。若第一个case没有设置原始值,则默认为0:

当使用字符串作为原始值时,每个case的隐含值是该case的名称。

使用枚举的 rawValue 属性来访问其原始值:

如果使用原始值类型定义枚举,则枚举会自动接收一个带有原始值的初始化器,并返回可选类型的枚举实例。

递归枚举是将枚举的另一个实例作为一个或多个枚举case的关联值。在枚举case 前面添加关键字 indirect 来指明该枚举case是递归的,这就告诉了编译器插入必要的间接层。

例如,下面是存储简单算术表达式的枚举:

还可以在枚举 enum 之前添加 indirect ,以便为所有具有关联值的枚举case启用间接:

递归函数是处理具有递归结构的数据的简单方法。例如,这是一个计算算术表达式的函数:

Swift 42 基础专题详解

那就是固态硬盘寿命≈(闪存擦写次数X 固态硬盘容量)÷(写入放大系数 X 数据写入量),以面前主流的240GB的TLC固态硬盘为例,PE数据最保守也在1000次左右,而普通用户每天正常数据写入量不超过30GB,所以根据公式240GB的TLC固态硬盘寿命大约在21年左右。

是到10S后有些继续计时有些就停止计时,但是到10S后,该定时器的常开触点就闭合,常闭触点断开。计时器到设定时间后时间增加不影响已闭合的常开常闭触点的,只有前面的条件断掉后定时器才复位。

以上就是关于Swift 枚举(enum)详解全部的内容,包括:Swift 枚举(enum)详解、固态硬盘pe次数原始值大、定时器的超时值为什么是原来的评估值加上四倍的安全余量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10098767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存