欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入解析Swift編程中枚舉類(lèi)型的相關(guān)使用

 更新時(shí)間:2015年11月04日 17:24:16   投稿:goldensun  
這篇文章主要介紹了Swift編程中枚舉類(lèi)型的相關(guān)使用,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

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

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

  • 它是在一個(gè)類(lèi)中聲明,其值是通過(guò)該類(lèi)的實(shí)例來(lái)訪問(wèn)
  • 初始成員值是用枚舉初始化定義的
  • 其功能也擴(kuò)展確保標(biāo)準(zhǔn)的協(xié)議功能

語(yǔ)法
枚舉引入 enum 關(guān)鍵字和一對(duì)大括號(hào)內(nèi)將它們定義:

復(fù)制代碼 代碼如下:

enum enumname {
   // enumeration values are described here
}

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

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

示例
復(fù)制代碼 代碼如下:

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")
}

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

Welcome to Closures

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

復(fù)制代碼 代碼如下:

var weekDay = DaysofaWeek.Sunday

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

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

復(fù)制代碼 代碼如下:

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")
}


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

Climte is Cold

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

枚舉可進(jìn)一步劃分到相關(guān)的值和原始值。

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

2015114172325864.png (404×182)

枚舉與關(guān)聯(lián)值

復(fù)制代碼 代碼如下:

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")
}

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

Swift
98
97
95

例如,考慮訪問(wèn)學(xué)生的名字和標(biāo)記固定在三個(gè)科目枚舉名稱(chēng)被聲明為 student ,而在枚舉類(lèi)中的成員名稱(chēng)都屬于字符串?dāng)?shù)據(jù)類(lèi)型,標(biāo)記表示為 mark1, mark2 和 mark3 數(shù)據(jù)類(lèi)型為整數(shù)。若要訪問(wèn)的是學(xué)生的名字或標(biāo)記分?jǐn)?shù):

復(fù)制代碼 代碼如下:

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

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

枚舉與原始值
原始值可以是字符串,字符,或任何整數(shù)或浮點(diǎn)數(shù)類(lèi)型。每個(gè)原始值必須在其枚舉聲明中是唯一的。當(dāng)整數(shù)用于原始值,如果指定的一些枚舉成員沒(méi)有任何值,它們會(huì)自動(dòng)遞增。

復(fù)制代碼 代碼如下:

 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).")


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

Value of the Month is: 5.

相關(guān)文章

  • Swift HTTP加載請(qǐng)求Loading Requests教程

    Swift HTTP加載請(qǐng)求Loading Requests教程

    這篇文章主要為大家介紹了Swift HTTP加載請(qǐng)求Loading Requests教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 深入理解Swift中單例模式的替換及Swift 3.0單例模式的實(shí)現(xiàn)

    深入理解Swift中單例模式的替換及Swift 3.0單例模式的實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于Swift中單例模式替換的相關(guān)資料,然后又跟大家分享了關(guān)于Swift3.0 單例模式實(shí)現(xiàn)的幾種方法-Dispatch_Once的內(nèi)容,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-11-11
  • Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器項(xiàng)目

    Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了Swift實(shí)現(xiàn)簡(jiǎn)單計(jì)算器項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 深入解析Swift語(yǔ)言中的協(xié)議

    深入解析Swift語(yǔ)言中的協(xié)議

    這篇文章主要介紹了深入解析Swift語(yǔ)言中的協(xié)議,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • Ubuntu 16.04上安裝 Swift 3.0及問(wèn)題解答

    Ubuntu 16.04上安裝 Swift 3.0及問(wèn)題解答

    本文給大家分享的是在Ubuntu系統(tǒng)中安裝 Swift 3.0的方法和步驟,以及安裝過(guò)程中有可能遇到的問(wèn)題的解答,這里推薦給小伙伴們,希望大家能夠喜歡
    2016-07-07
  • Swift 3.0基礎(chǔ)學(xué)習(xí)之閉包

    Swift 3.0基礎(chǔ)學(xué)習(xí)之閉包

    Swift引進(jìn)了閉包的概念,這個(gè)與object-c的block類(lèi)似,使用過(guò)block的話都知道有多方便,所以開(kāi)始學(xué)Swift,先要把閉包學(xué)會(huì),后面使用會(huì)很頻繁。下面這篇文章主要介紹了Swift 3.0基礎(chǔ)學(xué)習(xí)之閉包的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • swift計(jì)步器CMPedometer的使用方法

    swift計(jì)步器CMPedometer的使用方法

    這篇文章主要為大家詳細(xì)介紹了swift計(jì)步器CMPedometer的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Swift中的限定擴(kuò)展詳析

    Swift中的限定擴(kuò)展詳析

    擴(kuò)展就是向一個(gè)已有的類(lèi)、結(jié)構(gòu)體或枚舉類(lèi)型添加新功能。下面這篇文章主要給大家介紹了關(guān)于Swift中限定擴(kuò)展的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2018-03-03
  • Swift的開(kāi)發(fā)環(huán)境搭建以及基本語(yǔ)法詳解

    Swift的開(kāi)發(fā)環(huán)境搭建以及基本語(yǔ)法詳解

    這篇文章主要介紹了Swift的開(kāi)發(fā)環(huán)境搭建以及基本語(yǔ)法詳解,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解

    Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解

    這篇文章主要給大家介紹了關(guān)于Swift中defer關(guān)鍵字推遲執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03

最新評(píng)論