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

2021-08-05 21:56:56 字數 2256 閱讀 2282

在c語言中,甚至oc等其他高階語言中,都是把enum列舉的值當作是乙個int整數來替代

具體可看我的這篇文章:c語言的列舉與巨集定義

注:本篇文章學習自泊學(boxueio.com)

(ps:swift更新得真是非常快啊,4個月不到前寫的**,今天開啟就提醒有語法要修正…)

在swift中,enum看起來是這樣的:

enum week

let week1 = week.mon

或:

enum subject

let mysubject = subject.chinese

無論哪種方式,可以在playground看到,當在使用week.mon時,就已經在訪問乙個enum的值了,它的case就是它的值本身,無需刻意地定義乙個值來代表它。

使用enum比使用字串或數字有很多好處:

1 避免輸入錯誤

2 使用enum型別是安全的,如當使用week或subject時,不會發生型別正確,值卻沒有意義的情況

1)enum與switch

如果enum的型別可被推導出,則可在讀取值的時候,省掉它型別的名字:

func week(today: week)

}

對於乙個enum的switch來說,它的所有的case就是它全部的情況,所以最後不用再寫default

2)enum值的表達方式1:raw value原始數值

1. 手動為enum指定值

enum week:int

2. 自動:

如上段**,當沒有手動為後面的thur、fri等賦值時,它們將被自動賦值,從上乙個值開始遞增

3. 訪問enum的rawvalue:

let week1 = week.fri.rawvalue
此時為9

4. 用rawvalue來訪問乙個enum的值

let week2 = week(rawvalue: 7)
此時enum值為wed

3)enum值的表達方式2: associated value結合值

1.  給每乙個case繫結不同型別的值

2.  通過switch訪問enum的結合值associated value

Swift中列舉enum講解

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

c 中的enum列舉型別

如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個鉛筆盒中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就...

Java中的列舉 EnumMap與EnumSet

public enum databasetype 某類中定義的獲取資料庫url的方法以及enummap的宣告。private enummapurls new enummap databasetype.class public databaseinfo 根據不同的資料庫型別,返回對應的url para...