Swift中的列舉

2021-08-08 13:34:33 字數 1254 閱讀 1771

在objective-c中,列舉是用來管理一組相關常量的集合,使用列舉可以提高程式的可讀性,使**更容易維護。但是,在swift中,列舉的作用已經不僅僅是用來定義一組列舉了。在swift中,列舉還具有一定的物件導向的特點。在swift中,列舉的宣告還是使用關鍵字enum,其具體格式為:

enum 列舉名
在學習objective-c的時候,我們知道,列舉的成員值是整數型別。但是在swift中,其列舉成員值預設情況下不是整數型別,並且在成員值前面還要加上關鍵字case:

// 宣告乙個星期列舉

enum week

// 列舉的使用

var day = week.monday // 通過「列舉名.成員值」的形式來訪問列舉

day = .tuesday // 省略列舉名

func whatdayoftheweek(day: week)

}whatdayoftheweek(day: day) // 引數傳遞的是列舉成員值

whatdayoftheweek(day: week.wednesday) // 引數傳遞的是列舉變數

在使用列舉成員賦值時,我們既可以採用完整的語法進行賦值,也可以通過省略列舉名進行賦值。並且,列舉變數還可以和switch配合使用。不過需要注意,在switch中使用列舉時,case必須包含列舉中所有的成員,而且語句中可以有default,也可以沒有default。

在定義列舉時,還可以根據實際情況來提供原始值,並且原始值不限於整型,還可以是字元(串)、浮點數等等。指定原始值的語法為:

enum 列舉名: 資料型別
在指定列舉原始值的預設型別之後,需要給每個成員賦值,並且每隔case的值都不能重複。以上面的**為例:

// 宣告乙個星期列舉

enum week: int

// 或者也可以採用簡寫的語法

enum week: int

// 將列舉值轉換為原始值

let monday = week.monday.rawvalue // 0

let friday = week.friday.rawvalue // 4

let saturday = week.saturday.rawvalue // 5

採用簡寫時,如果指定其預設值型別為整型,只需要給第乙個成員賦值,後面的成員值會自動加一。要將列舉成員的值轉換為原始值,可以用屬性rawvalue。

Swift中的列舉enum 與C中的列舉

在c語言中,甚至oc等其他高階語言中,都是把enum列舉的值當作是乙個int整數來替代 具體可看我的這篇文章 c語言的列舉與巨集定義 注 本篇文章學習自泊學 boxueio.com ps swift更新得真是非常快啊,4個月不到前寫的 今天開啟就提醒有語法要修正 在swift中,enum看起來是這樣...

Swift中列舉enum講解

需要定義一組具有相關性的資料時,往往會使用到列舉型別,列舉型別可由成員 屬性 下標指令碼和方法組成 列舉型別和類的構成基本相似,不同在於列舉型別比類多了成員。列舉型別可以分為兩種 沒有指定資料型別 任意型別的列舉型別 和指定資料型別 定義如下 指定資料型別 enum person string 沒有...

Swift 的學習 列舉

在swift中,列舉型別是相當重要的乙個資料型別,他跟以往的c語言 object c中的列舉型別有很大的區別 1 在你的 中,用列舉是型別安全的 default 這個分支是沒有必要的寫的,此swich語句中,httpmethond列舉中兩個分支都已經存在 switch getenum compass...