Swift枚舉

枚舉:定義可能值列表的自定義類型模型。是一種數據類型,只不過是這種數據類型只包含自定義的特定數據,它是一組有共同特性的數據的集合。

Swift的枚舉類似于 Objective C 和 C 的結構,枚舉的功能為:

1.它聲明在類里,通過實例化類來訪問它的值。

2.也可以定義構造函數來提供一個初始成員值,可以在原始的實現基礎上擴展它們的功能。

3.可以遵守協議來提供標準的功能。

不過Swift中的枚舉要靈活得多,不必為枚舉的每個情況提供值。如果為每個枚舉情況提供了值(稱為原始值),則該值可以是字符串、字符或任何整數或浮點類型的值。

枚舉語法

以上枚舉中定義的值(如north、south、east和west)是其枚舉情況。您使用case關鍵字引入一行新的枚舉案例。

與C和Objective-C等語言不同,Swift枚舉案例默認沒有整數值設置。在上面的Compass示例中,north、south、east和west并不隱含地等于0、1、2和3。相反,不同的枚舉情況本身就是值,具有明確定義的Compass類型。

var directionToHead = CompassPoint.west

directionToHead的類型可以在它被CompassPoint的一個可能值初始化時推斷出來。一旦directionToHead被聲明為一個CompassPoint,你可以使用一個縮寫語法(.)將其設置為另一個CompassPoint的值:

directionToHead = .east

當directionToHead的類型已知時,再次為其賦值可以省略枚舉名。使用顯式類型的枚舉值可以讓代碼具有更好的可讀性。

單行上也可以出現多個情況,用逗號分隔:

獲取所有枚舉的案例:

通過在枚舉名稱后寫入: CaseIterable來啟用此功能,Swift將所有案例的集合公開為枚舉類型的allCases屬性里。

枚舉分為相關值和原始值

相關值:枚舉成員可以是不同數據類型的;值的創建基于常量或者變量;相關值是當你在創建一個基于枚舉成員的新常量或變量時才會被設置,并且每次當你這么做得時候,它的值可以是不同的。

原始值:枚舉成員是相同數據類型的;預先填充的值;原始值始終是相同的。

原始值可以是字符串,字符,或者任何整型值或浮點型值。每個原始值在它的枚舉聲明中必須是唯一的。

在原始值為整數的枚舉時,不需要顯式的為每一個成員賦值,Swift會自動為你賦值。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 枚舉為一組相關的值定義了一個共同的類型,使得可以在代碼中以類型安全的方式來使用這些值。 如果熟悉 C 語言,會知道...
    窮人家的孩紙閱讀 861評論 1 4
  • 枚舉為一組相關值定義一個公共類型,并使我們能夠在代碼中以類型安全的方式使用這些值。 如果我們熟悉C,我們將知道C枚...
    明若晴空閱讀 734評論 0 0
  • 枚舉 枚舉為一組相關的值定義了一個共同的類型,使你可以在你的代碼中以類型安全的方式來使用這些值。 如果你熟悉 C ...
    xiaofu666閱讀 678評論 0 0
  • 格式enum SomeEnumeration {// 枚舉定義放在這里} Swift 的枚舉成員在被創建時不會被被...
    MZero閱讀 192評論 0 0
  • 中文文檔 一、枚舉語法 使用enum關鍵詞來創建枚舉并且把它們的整個定義放在一對大括號內 下面是用枚舉表示指南針四...
    伯wen閱讀 239評論 0 0