《从零开始学Swift》学习笔记(Day 24)——枚举

原创文章,欢迎转载。转载请注明:关东升的博客  php

Swift中的枚举能够定义一组常量、提升程序的可读性;还具备面向对象特性。java

使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式以下:微信

enum 枚举名网站

{ spa

     枚举的定义.net

}设计

“枚举名”是该枚举类型的名称。它首先应该是有效的标识符,其次应该遵照面向对象的命名规范,它由一组成员值和一组相关值组成。 code

成员值对象

枚举的成员值默认状况下不是整数类型,如下代码是声明枚举示例:教程

enum WeekDays {     case Monday     case Tuesday     case Wednesday     case Thursday     case Friday }

在这些成员值前面要加上case关键字,也能够将多个成员值放在同一行,用逗号隔开,以下所示:

enum WeekDays {     case Monday, Tuesday, Wednesday, Thursday, Friday }

下面咱们看一个示例,代码以下:

var day = WeekDays.Friday day = WeekDays.Wednesday day = .Monday           

 

使用枚举成员赋值时候,咱们能够采用完整的“枚举类型名.成员值”的形式,也能够省略枚举类型采用“.成员值”的形式。这种省略形式可以访问的前提是,Swift编译器可以根据上下文环境推断类型。由于咱们已经在第1行和第2行给day变量赋值,因此即便第3行代码采用缩写,Swift编译器可以推断出数据类型是WeekDays 

原始值

出于业务上的须要,要为每一个成员提供某种基本数据类型,咱们能够为枚举类型提供原始值(raw values)声明,这些原始值类型能够是:字符、字符串、整数和浮点数等。

原始值枚举的语法格式以下:

enum 枚举名: 数据类型

{   

   case 成员名 = 默认值

   ...

}

在“枚举名”后面跟“:”和“数据类型”就能够声明原始值枚举的类型,而后在定义case成员的时候须要提供原始值。

如下代码是声明枚举示例:

enum WeekDays: Int {     case Monday          = 0     case Tuesday         = 1     case Wednesday      = 2     case Thursday        = 3     case Friday          = 4 }

咱们声明的WeekDays枚举类型的原始值类型是Int,须要给每一个成员赋值,只要是Int类型均可以,可是每一个分支不能重复。 

相关值

Swift中除了能够定义一组成员值,还能够定义一组相关值(associated values),它有点相似于C中的联合类型。下面看一个枚举类型的声明:

enum Figure {     case Rectangle(Int, Int)     case Circle(Int) }

 枚举类型Figure(图形)有两个相关值:Rectangle(矩形)和Circle(圆形)。RectangleCircle是与Figure有关联的相关值,它们都是元组类型,对于一个特定的Figure实例,只能是其中一个相关值。从这一点来看,枚举类型的相关值相似于C中的联合类型。

 

欢迎关注关东升新浪微博@tony_ 关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 
更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php