本文章純粹是中文版《the swift programming language》的學習筆記,所以絕大部分的內容都是文中有的。本文是本人的學習筆記,不是正式系統的記錄。僅供參考
以下還是有很多沒看懂、不確定的地方,我會以「存疑」的註解指出。
在此感謝中文版翻譯者,這極大地加快了 swift 的學習速度。
中文版:swift 3 程式語言 - 列舉
swift 中的列舉不需要對應真實的值。列舉的值可以是string
,character
,integer
,float
等型別。同時,列舉中的乙個值可以與多個型別相關聯起來。
基本語法:
enum compassdirection
初始化和賦值:
var dirtohead = compassdirection.west
dirtohead = .east
注意值處理都需要在前面加上 「.
」。這裡實際上是隱式省略了 「compassdirection」。
需要注意的是,如果將enum用在 switch 語句中,需要全覆蓋
所有的值。
enum barcode
上面這段語法的意思是:定義乙個叫做barcode
的數值型別,它要麼用 (int, int, int, int) 型別的關聯值擷取 upc 值,要麼使用 string 型別的關聯值街區乙個 qrcode 值。賦值:
var productbarcode = barcode.upc(8, 85907, 51226, 3)
productbarcode = .qrcode("abcdefg")
swift寫法:
switch productbarcode
如果變數裡面統一是使用let
或者統一使用var
,那麼可以簡寫成乙個:
switch productbarcode
enum asciicontrolcharacter: character
上面的例子告訴我們,可以指定 enum 的原始值型別。
如果沒有給 enum 顯示指定值型別,那麼 swift 會預設將每個值的原始值設定為其名字本身的 string 型別。
也可以像c
那樣,使用整型值,也可以自動排序下來。如下:
enum planet: int
這個時候,我們會涉及到乙個構造方法:rawvalue
。參見以下初始化:
let possibleplanet = planet(rawvalue: 7)
注意,此時的 possibleplanet 變數型別是 「planet?
」,注意其中的問號。因為使用 rawvalue 初始化 enum,可能得到乙個非法值。上面這一句,變數的值是nil
。
暫時不看。需要注意的是indirect
關鍵字。
Swift學習筆記 10 列舉
1.定義語法 enum someenumeration2.使用 enum compasspoint var directiontohead compasspoint.west directiontohead south switch directiontohead 注 1.變數乙個次賦值為列舉型別以...
swift學習筆記 20 列舉
當乙個變數有固定的幾個取值的時候,建議用列舉,比如說星期,月份等 列舉型別定義的資料型別的取值,只能是 case 後面的取值 enum weekday string var dayone weekday.friday 如果要改變 dayone 的值,用.就可以訪問 dayone monday 如果s...
swift學習筆記(8) 列舉
enum someenumeration 下面是用列舉表示指南針四個方向的例子 enum compasspoint 列舉中定義的值 如 north,south,east和west 是這個列舉的成員值 或成員 你可以使用case關鍵字來定義乙個新的列舉成員值。注意 與 c 和 objective c ...