真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

24.swift枚舉

import Foundation

呼倫貝爾網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

/*

Swift枚舉:

Swift中的枚舉比OC中的枚舉強(qiáng)大,因?yàn)镾wift中的枚舉是一等類型,它可以像類和結(jié)構(gòu)體一樣增加屬性和方法

格式:

enum Method{

    case 枚舉值

}

*/

enum Method{

//    case Add

//    case Sub

//    case Mul

//    case Div

   // 可以連在一起寫

    case Add, Sub, Mul, Div

}

//可以使用枚舉類型變量或常量接收枚舉值

var m: Method = .Add

//注意:如果變量或常量沒有指定類型,那么前面必須加上該值屬于哪個(gè)枚舉類型

var m1 = Method.Add

// 利用Switch匹配

// 注意: 如果case中包含了所有的值, 可以不寫default. 如果case中沒有包含枚舉中所有的值, 必須寫default

switch (Method.Add){

    case Method.Add:

        print("加法")

    case Method.Sub:

        print("減法")

    case Method.Mul:

        print("除法")

    case Method.Div:

        print("乘法")

//    default:

//        print("都不是")

}

/*

原始值:

 OC中枚舉的本質(zhì)就是整數(shù),所以O(shè)C中的枚舉是有原始值的,默認(rèn)是從0開始

而Swift中的枚舉默認(rèn)是沒有原始值的,但是可以在定義時(shí)告訴系統(tǒng)讓枚舉有原始值

enum Method: 枚舉值原始值類型{

    case 枚舉值

}

*/

enum Method2: Int{

   // 可以連在一起寫

    case Add, Sub, Mul, Div

}

//和OC中的枚舉一樣,也可以指定原始值,后面的值默認(rèn)+1

enum Method3: Int{

    case Add = 5, Sub, Mul, Div

}

// Swift中的枚舉除了可以指定×××以外還可以指定其它類型,但是如果指定其它類型,必須給所有枚舉值賦值,因?yàn)椴荒茏詣舆f增

enum Method4: Double{

   // 可以連在一起寫

    case Add = 5.0, Sub = 6.0, Mul = 6.1, Div = 8.0

}

// rawValue代表將枚舉值轉(zhuǎn)換為原始值,注意老版本中轉(zhuǎn)換為原始值的方法名叫toRaw

print(Method4.Sub.rawValue)

//原始值轉(zhuǎn)換為枚舉值

enum Method5: String{

    case Add = "add", Sub = "sub", Mul = "mul", Div = "div"

}

//通過原始值創(chuàng)建枚舉值

/*

注意: 

1.原始值區(qū)分大小寫

2.返回的是一個(gè)可選值,因?yàn)樵贾祵?yīng)的枚舉值不一定存在

3.老版本中為fromRaw("add")

*/

let m2 = Method5(rawValue: "add")

print(m2)

//func chooseMethod(op:Method2)

    func chooseMethod(op:String)

{

   //由于返回是可選類型,所以有可能為nil,最好使用可選綁定

    if let opE = Method5(rawValue: op){

        switch (opE){

        case .Add:

            print("加法")

        case .Sub:

            print("減法")

        case .Mul:

            print("除法")

        case .Div:

            print("乘法")

        }

    }

}

/*

枚舉相關(guān)值:

可以讓枚舉值對應(yīng)的原始值不是唯一的,而是一個(gè)變量.

每一個(gè)枚舉可以是在某種模式下的一些特定值

*/

enum lineSegmentDescriptor{

    case StartAndEndPattern(start:Double, end:Double)

    case StartAndLengthPattern(start: Double, length:Double)

}

var lsd = lineSegmentDescriptor.StartAndLengthPattern(start: 0.0, length: 100.0)

lsd = lineSegmentDescriptor.StartAndEndPattern(start: 0.0, end: 50.0)

// 利用switch提取枚舉關(guān)聯(lián)值

/*

switch lsd

{

    case .StartAndEndPattern(let s, let e):

        print("start = \(s) end = \(e)")

    case .StartAndLengthPattern(let s, let l):

        print("start = \(s) lenght = \(l)")

}

*/

//提取關(guān)聯(lián)值優(yōu)化寫法

switch lsd

{

        case let .StartAndEndPattern(s, e):

            print("start =\(s) end =\(e)")

        case .StartAndLengthPattern(let s, let l):

            print("start = \(s) lenght = \(l)")

}


本文題目:24.swift枚舉
文章起源:http://weahome.cn/article/poghoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部