《从零开始学Swift》学习笔记(Day 24)——枚举(Day 24)——枚举
原創文章,歡迎轉載。轉載請注明:關東升的博客?
?
Swift中的枚舉可以定義一組常量、提高程序的可讀性;還具有面向對象特性。
使用enum關鍵詞聲明枚舉類型,具體定義放在一對大括號內,枚舉的語法格式如下:
enum 枚舉名
{
???? 枚舉的定義
}
“枚舉名”是該枚舉類型的名稱。它首先應該是有效的標識符,其次應該遵守面向對象的命名規范,它由一組成員值和一組相關值組成。
成員值
枚舉的成員值默認情況下不是整數類型,以下代碼是聲明枚舉示例:
enum?WeekDays?{case?Mondaycase?Tuesdaycase?Wednesdaycase?Thursdaycase?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??????????=0case?Tuesday????????=1case?Wednesday?????=?2case?Thursday???????=3case?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
?
總結
以上是生活随笔為你收集整理的《从零开始学Swift》学习笔记(Day 24)——枚举(Day 24)——枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BCM_I2C函数更改
- 下一篇: iOS开源库PKRevealContro