zoukankan      html  css  js  c++  java
  • SWIFT Enumeration(1)

    Swift中定义Enumeration跟其它语言挺类似的,看如下定义一个星期的Enumeration

    enum Day:Int{

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

    }

    Monday赋值为1其它值则按顺序自动赋值,也是一种比较简便的写法,当然也可以为每个属性赋值

    enum Day:Int{

        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() 

  • 相关阅读:
    vsftp部署和优化错误
    部署和调优 1.6 vsftp部署和优化-2
    部署和调优 1.5 vsftp部署和优化-1
    部署和调优 1.3 pureftp部署和优化-2
    Linux一些常用软件的源码安装
    SecureCrt 利用公匙登录L机取消密码登录。
    利用任务自动上传备份。
    Mysql Too Many Connections问题解决
    Linux ---pptpd部署
    Sed简单入门实例
  • 原文地址:https://www.cnblogs.com/foxting/p/4396779.html
Copyright © 2011-2022 走看看