列舉與結構enum

2021-06-22 09:45:40 字數 1229 閱讀 3758

使用 enum 來建立列舉。有如類和其他命名型別,列舉可以有方法。

enum rank: int }}

let ace = rank.ace //by gashero

let acerawvalue = ace.toraw()

在如上例子中,原始值的型別是 int 所以可以只指定第乙個原始值。其後的原始值都是按照順序賦值的。也可以使用字串或浮點數作為列舉的原始值。

使用 toraw 和 fromraw 函式可以轉換原始值和列舉值。

if let convertedrank = rank.fromraw(3)

列舉的成員值就是實際值,而不是其他方式寫的原始值。實際上,有些情況是原始值,就是你不提供的時候。

enum suit }}

let hearts = suit.hearts //by gashero

let heartsdescription = hearts.******description()

注意上面引用hearts成員的兩種方法:當賦值到 hearts 常量時,列舉成員 suit.hearts 通過全名引用,因為常量沒有明確的型別。在 switch 中,列舉通過 .hearts 引用,因為 self 的值是已知的。你可以在任何時候使用方便的方法。

使用 struct 建立結構體。結構體支援多個與類相同的行為,包括方法和構造器。一大重要的區別是**之間的傳遞總是用拷貝(值傳遞),而類則是傳遞引用。

struct card

}let threeofspades = card(rank: .three, suit: .spades)

let threeofspadesdescription = threeofspades.******description()

乙個列舉的例項成員可以擁有例項的值。相同列舉成員例項可以有不同的值。你在建立例項時賦值。指定值和原始值的區別:列舉的原始值與其例項相同,你在定義列舉時提供原始值。

例如,假設情況需要從伺服器獲取太陽公升起和降落時間。伺服器可以響應相同的資訊或一些錯誤資訊。

enum serverresponse

let success = serverresponse.result("6:00 am", "8:09 pm")

let failure = serverresponse.error("out of cheese.")

switch success

注意日出和日落時間實際上來自於對 serverresponse 的部分匹配來選擇的。

列舉enum學習

enum enumeration name chongqi 3 以上簡單地按區域,將五個城市按照華南 4 華東 2 華北 3 的幾個城市分類了。4 列舉變數的定義 初始化和賦值 至於列舉可以當作特定的整型數來用的例子,從open modes可以體會。7 自定義運算子 列舉是使用者自定義型別,所以在使...

列舉 enum 總結

題外話 enum的訪問,直接寫欄位名就可以訪問 需注意作用域 區別於結構體 結構體變數.欄位名 如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個鉛筆盒中...

列舉型別(enum)

enum 是計算機程式語言中的一種資料型別 列舉型別。應用場景 有些變數的取值被要求在乙個確定的範圍內,例如一周有 7天,一年 12個月,或者使用者自定義的今天安排要學習的百家姓有 4個等等。定義 在列舉型別的定義中列舉出所有的可能取值,該變數的取值只能是所列舉的範圍。格式 enum 列舉名 enu...