温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

枚举

发布时间:2020-07-08 12:31:01 来源:网络 阅读:335 作者:hehemmm 栏目:移动开发

   Swift中枚举的格式如下:


    enum 枚举名{

        枚举的定义

}


    1、成员值

 在枚举类型中定义一组成员,与C和Object-C中枚举的主要作用是一样的,在C和Object-C中的成员类型是整数类型,因此在C和Object-C中枚举类型就是整数类型,而在Swift中,枚举的成员值默认类型下不是整数类型,枚举的成员值默认情况下不是整数类型,以下代码是枚举的示例:

 enum WeekDays{             case Monday             case Tuesday             case Wednesday             case Thursday             case Friday }

    其中定义了五个成员值:Monday....Friday,这些值都不是整数类型


    多个成员值在同一行,用逗号隔开,如下所示:


    enum WeekDays{

    case Monday,Tuesday,Wednesday,Thursday,Friday

}


    示例代码如下:

    var day = WeekDays.Friday     day = WeekDays.Wednesday     day = Monday func writeGreeting(day : WeekDays){  switch day{         case Monday:             println("星期一好")         case Tuesday:             println(“星期二好”)                 case Wednesday:             println(“星期三好”)                  case Thursday:             println(“星期四好”)                 case Friday:             println(“星期五好”) } }

    



    2、原始值

    可以为枚举每个成员提供特定类型的默认值,可以为枚举类型提供原始值声明,这些原始值类型可以是:字符、字符串、整数和浮点数等


    原始值枚举的语法如下:

    enum 枚举名:数据类型{

        case 成员名=默认值

}

    

    示例:

enum WeekDays:Int{     case Monday = 0     case Tuesday=1     case Wednesday=2     case Thursday=3     case Friday=4 }

    每个成员赋值,只要是Int类型就可以,但是每个分支不能重复,


    简单写法,只需原始第一个成员赋值即可,后面的成员会依次加1

    enum WeekDays:Int{         case Monday =0,Tuesday,Wednesday,Thursday,Friday }

    

        从成员到原始值


        let  friday = WeekDays.friday.rawValue    

            

        从原始值到成员


        let thursday = WeekDays(rawValue:4)


    3、相关值


            在Swift中除了可以定义一组相关值,它有点类似于C中的联合类型


            下面有一个枚举类型的声明:

            enum Figure{                 case Rectangele(Int,Int)                 case Circle(Int) }


        枚举类型Figure有2个相关值,Rectangle 和 Circle,这2个是与Figure有关联的相关值,只能是其中一个相关值。

        

        示例

    func printFigure(figure:Figure){             switch figure{                 case .Rectangle(let width,let height):                         println("\(width):\(height)")                 case Circle(let radius):                         println("\(radius)")          } }         var figure = Figure.Rectangle(10,20)         printFigure(figure)         var figure1 =Figure.Circle(20)           printFigure(figure1)

    


        

       


   

        


向AI问一下细节
推荐阅读:
  1. 枚举排列
  2. java 枚举

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI