Swift枚举

枚举:定义可能值列表的自定义类型模型。是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。

Swift的枚举类似于 Objective C 和 C 的结构,枚举的功能为:

1.它声明在类里,通过实例化类来访问它的值。

2.也可以定义构造函数来提供一个初始成员值,可以在原始的实现基础上扩展它们的功能。

3.可以遵守协议来提供标准的功能。

不过Swift中的枚举要灵活得多,不必为枚举的每个情况提供值。如果为每个枚举情况提供了值(称为原始值),则该值可以是字符串、字符或任何整数或浮点类型的值。

枚举语法

以上枚举中定义的值(如north、south、east和west)是其枚举情况。您使用case关键字引入一行新的枚举案例。

与C和Objective-C等语言不同,Swift枚举案例默认没有整数值设置。在上面的Compass示例中,north、south、east和west并不隐含地等于0、1、2和3。相反,不同的枚举情况本身就是值,具有明确定义的Compass类型。

var directionToHead = CompassPoint.west

directionToHead的类型可以在它被CompassPoint的一个可能值初始化时推断出来。一旦directionToHead被声明为一个CompassPoint,你可以使用一个缩写语法(.)将其设置为另一个CompassPoint的值:

directionToHead = .east

当directionToHead的类型已知时,再次为其赋值可以省略枚举名。使用显式类型的枚举值可以让代码具有更好的可读性。

单行上也可以出现多个情况,用逗号分隔:

获取所有枚举的案例:

通过在枚举名称后写入: CaseIterable来启用此功能,Swift将所有案例的集合公开为枚举类型的allCases属性里。

枚举分为相关值和原始值

相关值:枚举成员可以是不同数据类型的;值的创建基于常量或者变量;相关值是当你在创建一个基于枚举成员的新常量或变量时才会被设置,并且每次当你这么做得时候,它的值可以是不同的。

原始值:枚举成员是相同数据类型的;预先填充的值;原始值始终是相同的。

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

在原始值为整数的枚举时,不需要显式的为每一个成员赋值,Swift会自动为你赋值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 枚举为一组相关的值定义了一个共同的类型,使得可以在代码中以类型安全的方式来使用这些值。 如果熟悉 C 语言,会知道...
    穷人家的孩纸阅读 861评论 1 4
  • 枚举为一组相关值定义一个公共类型,并使我们能够在代码中以类型安全的方式使用这些值。 如果我们熟悉C,我们将知道C枚...
    明若晴空阅读 735评论 0 0
  • 枚举 枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值。 如果你熟悉 C ...
    xiaofu666阅读 680评论 0 0
  • 格式enum SomeEnumeration {// 枚举定义放在这里} Swift 的枚举成员在被创建时不会被被...
    MZero阅读 192评论 0 0
  • 中文文档 一、枚举语法 使用enum关键词来创建枚举并且把它们的整个定义放在一对大括号内 下面是用枚举表示指南针四...
    伯wen阅读 239评论 0 0