天天看點

SWIFT Enumeration(1)

Swift中定義Enumeration跟其它語言挺類似的,看如下定義一個星期的Enumeration

enum Day:Int{

    case Monday = 1, Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday

}

Monday指派為1其它值則按順序自動指派,也是一種比較簡便的寫法,當然也可以為每個屬性指派

    case Monday = 1

    case Tuesday = 2,

    case Wednesday = 3,Thursday,Friday,Saturday,Sunday

let myday = Day.Sunday //自動推測為Day類型的Enumeration

let dayNumber = Day.Sunday.rawValue //值為7

以下定義一個String類型的Enumeration

enum Period:String{

    case Morning = "Morning"

    case Noon = "Noon"

    case AfterNoon = "Afternoon"

    case Night = "Night"

    case MidNight = "MidNight"

Enumeration還有一個很強大的功能叫關值

enum AgeStatus{

    case Legal

    case NoOldEnought(Int)  //關聯值

    init(){

        self = Legal //default value

    }

    var description:String{

        switch self{

        case Legal:

            return "Age is legal"

        case NoOldEnought(let a):

            return "Age \(a) is illegal"

        default:

            return "Age is illegal"

        }

var sheAgeStatus = AgeStatus()

sheAgeStatus.description  //Age is legal

sheAgeStatus = AgeStatus.NoOldEnought(10)

sheAgeStatus.description // return Age 10 is illegal

Enumeration中還可以定義方法,在上面添加以下方法代碼:

func reportStatus() ->String{

        return self.description

 }

調用方法:

sheAgeStatus.reportStatus()