原創文章,歡迎轉載。轉載請註明:關東昇的博客 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(圓形)。Rectangle和Circle是與Figure有關聯的相關值,它們都是元組類型,對於一個特定的Figure實例,只能是其中一個相關值。從這一點來看,枚舉類型的相關值相似於C中的聯合類型。
歡迎關注關東昇新浪微博@tony_ 關東昇。
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php