最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入解析Swift編程中枚舉類型的相關使用

 更新時間:2015年11月04日 17:24:16   投稿:goldensun  
這篇文章主要介紹了Swift編程中枚舉類型的相關使用,是Swift入門學習中的基礎知識,需要的朋友可以參考下

枚舉是由用戶定義的數(shù)據(jù)類型的一組相關值。關鍵字 enum 用來定義枚舉數(shù)據(jù)類型。

枚舉功能
枚舉在 swift 也類似于 C 和 Objective C 中結(jié)構(gòu)類型

  • 它是在一個類中聲明,其值是通過該類的實例來訪問
  • 初始成員值是用枚舉初始化定義的
  • 其功能也擴展確保標準的協(xié)議功能

語法
枚舉引入 enum 關鍵字和一對大括號內(nèi)將它們定義:

復制代碼 代碼如下:

enum enumname {
   // enumeration values are described here
}

例如,可以為星期定義枚舉如下:
復制代碼 代碼如下:

enum DaysofaWeek {
   case Sunday
   case Monday
    ---
   case Saturday
}

示例
復制代碼 代碼如下:

enum names{
   case Swift
   case Closures
}
var lang = names.Closures
lang = .Closures
switch lang
{
   case .Swift:
   println("Welcome to Swift")
   case .Closures:
   println("Welcome to Closures")
   default:
   println("Introduction")
}

當我們上面的程序使用 playground 運行,我們得到以下結(jié)果

Welcome to Closures

Swift 中的枚舉不象 C 和 Objective C 分配其成員的默認值,相反,成員由它們枚舉名稱明確定義。枚舉名稱應該使用大寫字母(例如:enum DaysofaWeek)。

復制代碼 代碼如下:

var weekDay = DaysofaWeek.Sunday

這里所述枚舉名'DaysofaWeek'被分配給一個變量 weekday.Sunday。它通知編譯器數(shù)據(jù)類型屬于周日將被分配給該特定類的后續(xù)枚舉成員。一旦枚舉成員的數(shù)據(jù)類型定義,其成員可以通過傳遞值,并進一步計算進行訪問。

枚舉與Switch語句
Swift 中的 'Switch' 語句也遵循了多路選擇。 只有一個變量被以基于指定的條件的特定時間訪問。默認情況下,在switch語句用于捕獲不確定的情況(case)。

復制代碼 代碼如下:

enum Climate{
   case India
   case America
   case Africa
   case Australia
}

var season = Climate.America
season = .America
switch season
{
   case .India:
      println("Climate is Hot")
   case .America:
      println("Climate is Cold")
   case .Africa:
      println("Climate is Moderate")
   case .Australia:
      println("Climate is Rainy")
   default:
      println("Climate is not predictable")
}


當我們上面的程序使用 playground 運行,我們得到以下結(jié)果

Climte is Cold

該程序首先定義了Climate 作為枚舉名稱。那么它的成員如, 'China', 'America', 'Africa' 和 'Australia' 聲明屬于類 'Climate'. 現(xiàn)在成員 America 被分配到一個 Season 變量。此外,Switch case可以找到對應 .America 的值,并跳轉(zhuǎn)到該特定語句。 輸出將顯示為 “Climate is Cold”。同樣,所有成員可以通過 switch 語句訪問。 當條件不滿足它打印默認內(nèi)容 'Climate is not predictable'

枚舉可進一步劃分到相關的值和原始值。

關聯(lián)值和原始值之間的差異

2015114172325864.png (404×182)

枚舉與關聯(lián)值

復制代碼 代碼如下:

enum Student{
   case Name(String)
   case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
   case .Name(let studName):
      println("Student name is: \(studName).")
   case .Mark(let Mark1, let Mark2, let Mark3):
      println("Student Marks are: \(Mark1),\(Mark2),\(Mark3).")
   default:
      println("Nothing")
}

當我們上面的程序使用 playground 運行,我們得到以下結(jié)果

Swift
98
97
95

例如,考慮訪問學生的名字和標記固定在三個科目枚舉名稱被聲明為 student ,而在枚舉類中的成員名稱都屬于字符串數(shù)據(jù)類型,標記表示為 mark1, mark2 和 mark3 數(shù)據(jù)類型為整數(shù)。若要訪問的是學生的名字或標記分數(shù):

復制代碼 代碼如下:

var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)

現(xiàn)在,如果塊初執(zhí)行,switch case 將打印學生姓名,否則它將打印學生固定的標記。 如果這兩個條件都失敗了,將執(zhí)行默認塊。

枚舉與原始值
原始值可以是字符串,字符,或任何整數(shù)或浮點數(shù)類型。每個原始值必須在其枚舉聲明中是唯一的。當整數(shù)用于原始值,如果指定的一些枚舉成員沒有任何值,它們會自動遞增。

復制代碼 代碼如下:

 enum Month: Int {
   case January = 1, February, March, April, May, June, July, August, September, October, November, December
}

let yearMonth = Month.May.rawValue
println("Value of the Month is: \(yearMonth).")


當我們上面的程序使用 playground 運行,我們得到以下結(jié)果:

Value of the Month is: 5.

相關文章

  • Swift實現(xiàn)代碼混淆詳解

    Swift實現(xiàn)代碼混淆詳解

    本文詳細講解了Swift實現(xiàn)代碼混淆的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧<BR>
    2021-11-11
  • 如何使用Swift來實現(xiàn)一個命令行工具的方法

    如何使用Swift來實現(xiàn)一個命令行工具的方法

    這篇文章主要介紹了如何使用Swift來實現(xiàn)一個命令行工具,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Swift 3.1聊天界面鍵盤效果的實現(xiàn)詳解

    Swift 3.1聊天界面鍵盤效果的實現(xiàn)詳解

    這篇文章主要給大家介紹了Swift 3.1聊天界面鍵盤效果實現(xiàn)的相關資料,文中介紹的非常詳細,相信對大家的學習或者工作具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • Swift 3.0基礎學習之下標

    Swift 3.0基礎學習之下標

    這篇文章主要介紹了Swift 3.0基礎學習之下標的相關資料,文中介紹的非常詳細,對大家學習或者使用swift具有一定的參考價值,需要的朋友下面來一起看看吧。
    2017-03-03
  • 深入講解Swift中的模式匹配

    深入講解Swift中的模式匹配

    在Swift中,一些模式已經(jīng)被語言特性所吸收,你在使用Swift甚至察覺不出這類問題的存在,下面這篇文章主要給大家介紹了關于Swift中模式匹配的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-08-08
  • 通過Notification.Name看Swift是如何優(yōu)雅的解決String硬編碼

    通過Notification.Name看Swift是如何優(yōu)雅的解決String硬編碼

    這篇文章主要給大家介紹了通過Notification.Name看Swift是如何優(yōu)雅的解決String硬編碼的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • Swift中初始化init的方法小結(jié)

    Swift中初始化init的方法小結(jié)

    Swift有著超級嚴格的初始化方法,不僅強化了designated初始化方法的地位,所有不加修飾的init方法都需要在方法中確保非Optional的實例變量被賦值初始化,下面這篇文章主要給大家介紹了關于Swift中初始化init的相關資料,需要的朋友可以參考下。
    2018-04-04
  • 純swift實現(xiàn)ipad版簡單美團界面功能

    純swift實現(xiàn)ipad版簡單美團界面功能

    這篇文章主要為大家詳細介紹了純swift實現(xiàn)ipad版簡單美團界面功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Swift語言中的函數(shù)學習教程

    Swift語言中的函數(shù)學習教程

    這篇文章主要介紹了Swift語言中的函數(shù)學習教程,著重講了Swift函數(shù)的參數(shù)傳遞用法,需要的朋友可以參考下
    2015-11-11
  • Swift中的HTTP模擬測試示例詳解

    Swift中的HTTP模擬測試示例詳解

    這篇文章主要為大家介紹了Swift中的HTTP模擬測試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論

峨眉山市| 宕昌县| 昂仁县| 灌阳县| 滦平县| 宾阳县| 专栏| 德庆县| 湘潭县| 鹿泉市| 莱州市| 民乐县| 高雄县| 荃湾区| 凌源市| 澄迈县| 三台县| 鲁甸县| 靖远县| 股票| 新民市| 鹿泉市| 塘沽区| 彰武县| 兴隆县| 庐江县| 漳浦县| 农安县| 望江县| 图片| 绥江县| 驻马店市| 石首市| 陈巴尔虎旗| 璧山县| 嘉黎县| 庐江县| 鲜城| 滁州市| 庄浪县| 弋阳县|