DahuangPhoneiOSSwift → Swift中的枚举


  共有7801人关注过本帖树形打印复制链接

主题:Swift中的枚举

帅哥哟,离线,有人找我吗?
dahuangphone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:407 积分:4533 威望:0 精华:0 注册:2012/9/29 7:54:10
Swift中的枚举  发帖心情 Post By:2014/10/11 20:57:00 [只看该作者]

//定义

enum E1{

    case Monday,Tuesday,Wendnesday,Thursday,Firday   //最后一个没有逗号

}

enum E2{

    case Monday   //没有逗号,这里面的值并不是0

    case Tuesday

    case Wendnesday

    case Thursday

    case Firday

}


enum E3:Int{

    case Monday=0   //没有逗号,下面的值自动加1

    case Tuesday

    case Wendnesday

    case Thursday=5

    case Firday

}


//赋值:


var ae1:E1=E1.Monday

var ae2=E2.Monday

var ae3=E3.Monday   //虽然E3Monday的值是0,但是不代表ae3的值是0


var ae3Value=ae3.toRaw();  //这个值才是0 ae3没有toRaw这个方法。


var ae31=E3.fromRaw(ae3Value//ae3=ae31


//枚举和switch的使用


//枚举中的每一个值都必须在switchcase体现,如果在case中体现了,可以省略default


switch ae1{

    case .Monday:

        println("mon")

    case .Tuesday:

        println("2,3")

    case .Wendnesday:

        println("2,3")

    case .Thursday,.Firday:

        println("4,5")

    default:

    println("4,5")


}


//枚举中为元组


enum E4{

    case C1(Int,Int)

    case C2(Int)

}


func printE4(e4:E4){

    switch e4{

    case .C1(let x, let y):  //注意取值的写法

        println("\(x+y)")

    case let .C2(x):    //如果所有制都要取出来,也可以这么写

        println("\(x)")  

    }

}


printE4(E4.C1(2, 3));


 回到顶部