日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Swift枚舉使用方法

Swift是一種適用于iOS和OS X應(yīng)用的全新編程語(yǔ)言,它建立在最好的C和Objective-C語(yǔ)言之上,并且沒(méi)有C語(yǔ)言的兼容性限制。Swift采用安全的編程模式,增加了現(xiàn)代功能使編程更容易、更靈活、更有趣。

枚舉簡(jiǎn)單的說(shuō)也是一種數(shù)據(jù)類型,只不過(guò)是這種數(shù)據(jù)類型只包含自定義的特定數(shù)據(jù),它是一組有共同特性的數(shù)據(jù)的集合。

Swift 的枚舉類似于 Objective C 和 C 的結(jié)構(gòu),枚舉的功能為:

它聲明在類中,可以通過(guò)實(shí)例化類來(lái)訪問(wèn)它的值。

枚舉也可以定義構(gòu)造函數(shù)(initializers)來(lái)提供一個(gè)初始成員值;可以在原始的實(shí)現(xiàn)基礎(chǔ)上擴(kuò)展它們的功能。

可以遵守協(xié)議(protocols)來(lái)提供標(biāo)準(zhǔn)的功能。

語(yǔ)法

Swift 中使用 enum 關(guān)鍵詞來(lái)創(chuàng)建枚舉并且把它們的整個(gè)定義放在一對(duì)大括號(hào)內(nèi):

enum enumname {
  // 枚舉定義放在這里
}

例如我們定義以下表示星期的枚舉:

import Cocoa

// 定義枚舉
enum DaysofaWeek {
   case Sunday
   case Monday
   case TUESDAY
   case WEDNESDAY
   case THURSDAY
   case FRIDAY
   case Saturday
}

var weekDay = DaysofaWeek.THURSDAY
weekDay = .THURSDAY
switch weekDay
{
case .Sunday:
   print("星期天")
case .Monday:
   print("星期一")
case .TUESDAY:
   print("星期二")
case .WEDNESDAY:
   print("星期三")
case .THURSDAY:
   print("星期四")
case .FRIDAY:
   print("星期五")
case .Saturday:
   print("星期六")
}

以上程序執(zhí)行輸出結(jié)果為:

星期四

枚舉中定義的值(如 Sunday,Monday,……和Saturday)是這個(gè)枚舉的成員值(或成員)。case關(guān)鍵詞表示一行新的成員值將被定義。

注意: 和 C 和 Objective-C 不同,Swift 的枚舉成員在被創(chuàng)建時(shí)不會(huì)被賦予一個(gè)默認(rèn)的整型值。在上面的DaysofaWeek例子中,Sunday,Monday,……和Saturday不會(huì)隱式地賦值為0,1,……和6。相反,這些枚舉成員本身就有完備的值,這些值是已經(jīng)明確定義好的DaysofaWeek類型。

var weekDay = DaysofaWeek.THURSDAY

weekDay的類型可以在它被DaysofaWeek的一個(gè)可能值初始化時(shí)推斷出來(lái)。一旦weekDay被聲明為一個(gè)DaysofaWeek,你可以使用一個(gè)縮寫語(yǔ)法(.)將其設(shè)置為另一個(gè)DaysofaWeek的值:

var weekDay = .THURSDAY

當(dāng)weekDay的類型已知時(shí),再次為其賦值可以省略枚舉名。使用顯式類型的枚舉值可以讓代碼具有更好的可讀性。

枚舉可分為相關(guān)值與原始值。

相關(guān)值與原始值的區(qū)別

相關(guān)值

以下實(shí)例中我們定義一個(gè)名為 Student 的枚舉類型,它可以是 Name 的一個(gè)字符串(String),或者是 Mark 的一個(gè)相關(guān)值(Int,Int,Int)。

import Cocoa

enum Student{
   case Name(String)
   case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Runoob")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
case .Name(let studName):
   print("學(xué)生的名字是: \(studName)。")
case .Mark(let Mark1, let Mark2, let Mark3):
   print("學(xué)生的成績(jī)是: \(Mark1),\(Mark2),\(Mark3)。")
}

以上程序執(zhí)行輸出結(jié)果為:

學(xué)生的成績(jī)是: 98,97,95。

原始值

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

在原始值為整數(shù)的枚舉時(shí),不需要顯式的為每一個(gè)成員賦值,Swift會(huì)自動(dòng)為你賦值。

例如,當(dāng)使用整數(shù)作為原始值時(shí),隱式賦值的值依次遞增1。如果第一個(gè)值沒(méi)有被賦初值,將會(huì)被自動(dòng)置為0。

import Cocoa

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

let yearMonth = Month.May.rawValue
print("數(shù)字月份為: \(yearMonth)。")

以上程序執(zhí)行輸出結(jié)果為:

數(shù)字月份為: 5。

網(wǎng)頁(yè)題目:Swift枚舉使用方法
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/cosjecg.html