《從零開始學(xué)Swift》學(xué)習(xí)筆記(Day 24)——枚舉

原創(chuàng)文章早抠,歡迎轉(zhuǎn)載谣拣。轉(zhuǎn)載請注明:關(guān)東升的博客??

Swift中的枚舉可以定義一組常量囚痴、提高程序的可讀性叁怪;還具有面向?qū)ο筇匦浴?/p>

使用enum關(guān)鍵詞聲明枚舉類型,具體定義放在一對大括號內(nèi)深滚,枚舉的語法格式如下:

enum 枚舉名

{

???? 枚舉的定義

}

“枚舉名”是該枚舉類型的名稱奕谭。它首先應(yīng)該是有效的標(biāo)識符,其次應(yīng)該遵守面向?qū)ο蟮拿?guī)范痴荐,它由一組成員值和一組相關(guān)值組成血柳。

成員值

枚舉的成員值默認(rèn)情況下不是整數(shù)類型,以下代碼是聲明枚舉示例:

enum WeekDays {

??? case Monday

??? case Tuesday

??? case Wednesday

??? case Thursday

??? case Friday

}

在這些成員值前面要加上case關(guān)鍵字生兆,也可以將多個成員值放在同一行难捌,用逗號隔開,如下所示:

enum WeekDays {

??? case Monday, Tuesday, Wednesday, Thursday, Friday

}

下面我們看一個示例鸦难,代碼如下:

var day = WeekDays.Friday

day = WeekDays.Wednesday

day = .Monday?? ??? ???

使用枚舉成員賦值時候根吁,我們可以采用完整的“枚舉類型名.成員值”的形式,也可以省略枚舉類型采用“.成員值”的形式合蔽。這種省略形式能夠訪問的前提是击敌,Swift編譯器能夠根據(jù)上下文環(huán)境推斷類型。因為我們已經(jīng)在第1行和第2行給day變量賦值拴事,所以即使第3行代碼采用縮寫沃斤,Swift編譯器能夠推斷出數(shù)據(jù)類型是WeekDays。

原始值

出于業(yè)務(wù)上的需要刃宵,要為每個成員提供某種基本數(shù)據(jù)類型衡瓶,我們可以為枚舉類型提供原始值(raw values)聲明,這些原始值類型可以是:字符牲证、字符串哮针、整數(shù)和浮點數(shù)等。

原始值枚舉的語法格式如下:

enum 枚舉名: 數(shù)據(jù)類型

{ ??

?? case 成員名 = 默認(rèn)值

?? ...

}

在“枚舉名”后面跟“:”和“數(shù)據(jù)類型”就可以聲明原始值枚舉的類型从隆,然后在定義case成員的時候需要提供原始值诚撵。

以下代碼是聲明枚舉示例:

enum WeekDays: Int {

??? case Monday??????? ? = 0

??? case Tuesday??????? = 1

??? case Wednesday???? = 2

??? case Thursday?????? = 3

??? case Friday???????? = 4

}

我們聲明的WeekDays枚舉類型的原始值類型是Int,需要給每個成員賦值键闺,只要是Int類型都可以寿烟,但是每個分支不能重復(fù)。

相關(guān)值

在Swift中除了可以定義一組成員值辛燥,還可以定義一組相關(guān)值(associated values)筛武,它有點類似于C中的聯(lián)合類型缝其。下面看一個枚舉類型的聲明:

enum Figure {

??? case Rectangle(Int, Int)

??? case Circle(Int)

}

枚舉類型Figure(圖形)有兩個相關(guān)值: Rectangle(矩形)和Circle(圓形)。Rectangle和Circle是與Figure有關(guān)聯(lián)的相關(guān)值徘六,它們都是元組類型内边,對于一個特定的Figure實例,只能是其中一個相關(guān)值待锈。從這一點來看漠其,枚舉類型的相關(guān)值類似于C中的聯(lián)合類型。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竿音,一起剝皮案震驚了整個濱河市和屎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌春瞬,老刑警劉巖柴信,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宽气,居然都是意外死亡随常,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門萄涯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绪氛,“玉大人,你說我怎么就攤上這事窃判〕ィ” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵袄琳,是天一觀的道長询件。 經(jīng)常有香客問我,道長唆樊,這世上最難降的妖魔是什么宛琅? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮逗旁,結(jié)果婚禮上嘿辟,老公的妹妹穿的比我還像新娘。我一直安慰自己片效,他們只是感情好红伦,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淀衣,像睡著了一般昙读。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膨桥,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天蛮浑,我揣著相機與錄音唠叛,去河邊找鬼。 笑死沮稚,一個胖子當(dāng)著我的面吹牛艺沼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蕴掏,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼障般,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了囚似?” 一聲冷哼從身側(cè)響起剩拢,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤线得,失蹤者是張志新(化名)和其女友劉穎饶唤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贯钩,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡募狂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了角雷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祸穷。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖勺三,靈堂內(nèi)的尸體忽然破棺而出雷滚,到底是詐尸還是另有隱情,我是刑警寧澤吗坚,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布祈远,位于F島的核電站,受9級特大地震影響商源,放射性物質(zhì)發(fā)生泄漏车份。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一牡彻、第九天 我趴在偏房一處隱蔽的房頂上張望扫沼。 院中可真熱鬧,春花似錦庄吼、人聲如沸缎除。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽器罐。三九已至,卻和暖如春废菱,著一層夾襖步出監(jiān)牢的瞬間技矮,已是汗流浹背抖誉。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衰倦,地道東北人袒炉。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像樊零,于是被迫代替她去往敵國和親我磁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 學(xué)習(xí)不像愛情驻襟。愛情你一認(rèn)真就輸了夺艰。學(xué)習(xí)你一認(rèn)真就贏了。A plant may produce new flower...
    DSA碼儂閱讀 713評論 0 3
  • title: "Swift 中枚舉高級用法及實踐"date: 2015-11-20tags: [APPVENTUR...
    guoshengboy閱讀 2,589評論 0 2
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,812評論 1 10
  • 枚舉簡單的說也是一種數(shù)據(jù)類型沉衣,只不過是這種數(shù)據(jù)類型只包含自定義的特定數(shù)據(jù)郁副,它是一組有共同特性的數(shù)據(jù)的集合。 Swi...
    零度_不結(jié)冰閱讀 343評論 0 0
  • 在地球的另一端豌习,有一個很帥很帥的男孩存谎。 至少在我心里是這樣的。 他喜歡打籃球肥隆、打臺球既荚,沒事的時候還會畫...
    沐陌冬閱讀 242評論 0 0