前言
在 swift 中,列舉是乙個非常方便也非常強大的型別。我們在日常使用中也經常會使用到它。
例如,我們最常見的 optional:
enum optional
這裡不準備介紹列舉的基本用法,只是記錄兩個比較好用的列舉用法。
關聯值關聯值是將額外資訊附加到 enum case 中的一種極好的方式。
例如,當我們需要將一系列的值傳到下乙個類中時,一般情況下我們像下方**一樣寫出幾個設定的方法:
struct mystruct else
}www.cppcns.com
}class two
func setvalue2(value: int?)
func setvalue2(value: mystruct?)
}這樣當需要傳的值變多時,**無疑就會變得沒那麼好看了。我們可以用列舉來簡化:
enum valuebind
class two
}}利用列舉關聯值之後,咱們的**馬上就簡潔了不少。
自定義列舉型別
平常我們使用列舉時,我們在為列舉定義 value 時,一般就只用了幾種基本的型別:
enum direction
enum stringenum: string
enum intenum: int
但是,如果我們需要在列舉型別放入我們自定義的型別的話,我們就需要為列舉加一些東西了。
enum customenuceswlxamtm: rawrepresentable
} var rawvalue: mystruct
}}我們讓列舉遵守 rawrepresentable 協議,並實現協議的一些屬性及方法:
/*將列舉的 rawvalue 關聯為自己希望的型別
**/associatedtype rawvalue
/* 利用自己關聯的型別生成列舉的例項
**/init?(rawvalue: self.rawvalue)
/* 將自己定義的型別的作為 rawvalue 返回
**/var rawvalue: self.rawvalue
總程式設計客棧結
本文標題: swift列舉的一些小用法總結
本文位址:
一些小總結
1.不使用中間變數,更換2個變數的值的3個方法 int a 34 int b 45 system.out.println a a b b a b b a 0 system.out.println a a b b a a b b a b a a b system.out.println a a b b...
很雜的一些小總結
前前後後研究了有小半月,總算從零基礎,有了一些感想。不過今天的主題不是這個。前段時間的進度是,成功實現,依據班級資訊,學期資訊,從青果上將課程表頁面 爬下來,並用正規表示式實現了所需 提取。而今天,要做的事情是將提取的資料,存入到mysql中。這中間出現了挺多問題的,所以打算記錄一下。mysql也是...
Regx的一些小總結
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...