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

  • 相关阅读:
    随机抢红包算法实现
    C#Random函数在循环中每次获取一样的值
    YouTube Cobalt 浏览器支持
    原生js,通过document.getElementByClassName获取元素的索引值
    http请求415错误Unsupported Media Type
    axios
    vue项目中,localhost可以访问,IP无法访问的问题
    时间戳
    Vue.Draggable:基于 Sortable.js 的 Vue 拖拽组件使用中遇到的问题
    empty 与 remove 的区别
  • 原文地址:https://www.cnblogs.com/foxting/p/4396779.html
Copyright © 2011-2022 走看看