zoukankan      html  css  js  c++  java
  • swift枚举

    Swift中的枚举可以定义一组常量、提高程序的可读性;还具有面向对象特性。
    使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下:
    enum 枚举名

         枚举的定义
    }
    “枚举名”是该枚举类型的名称。它首先应该是有效的标识符,其次应该遵守面向对象的命名规范,它由一组成员值和一组相关值组成。

    成员值
    枚举的成员值默认情况下不是整数类型,以下代码是声明枚举示例:

     
    1. <span style="font-size:14px;">enum WeekDays {  
    2.     case Monday  
    3.     case Tuesday  
    4.     case Wednesday  
    5.     case Thursday  
    6.     case Friday  
    7. }  
    8. </span>  

    在这些成员值前面要加上case关键字,也可以将多个成员值放在同一行,用逗号隔开,如下所示:

     
    1. <span style="font-size:14px;">enum WeekDays {  
    2.     case Monday, Tuesday, Wednesday, Thursday, Friday  
    3. }</span>  

    下面我们看一个示例,代码如下:

    1. <span style="font-size:14px;">var day = WeekDays.Friday   
    2. day = WeekDays.Wednesday   
    3. day = .Monday   </span>  

    使用枚举成员赋值时候,我们可以采用完整的“枚举类型名.成员值”的形式,也可以省略枚举类型采用“.成员值”的形式。这种省略形式能够访问的前提是,Swift编译器能够根据上下文环境推断类型。因为我们已经在第1行和第2行给day变量赋值,所以即使第3行代码采用缩写,Swift编译器能够推断出数据类型是WeekDays。

    原始值
    出于业务上的需要,要为每个成员提供某种基本数据类型,我们可以为枚举类型提供原始值(raw values)声明,这些原始值类型可以是:字符、字符串、整数和浮点数等。
    原始值枚举的语法格式如下:
    enum 枚举名: 数据类型
    {   
      case 成员名 = 默认值
      ...
    }
    在“枚举名”后面跟“:”和“数据类型”就可以声明原始值枚举的类型,然后在定义case成员的时候需要提供原始值。
    以下代码是声明枚举示例:

    1. <span style="font-size:14px;">enum WeekDays: Int {  
    2.     case Monday         = 0  
    3.     case Tuesday         = 1  
    4.     case Wednesday      = 2  
    5.     case Thursday        = 3  
    6.     case Friday          = 4  
    7. }</span>  


    我们声明的WeekDays枚举类型的原始值类型是Int,需要给每个成员赋值,只要是Int类型都可以,但是每个分支不能重复。

    相关值
    在Swift中除了可以定义一组成员值,还可以定义一组相关值(associated values),它有点类似于C中的联合类型。下面看一个枚举类型的声明:

     
    1. <span style="font-size:14px;">enum Figure {  
    2.     case Rectangle(Int, Int)  
    3.     case Circle(Int)  
    4. }</span>  

    枚举类型Figure(图形)有两个相关值: Rectangle(矩形)和Circle(圆形)。Rectangle和Circle是与Figure有关联的相关值,它们都是元组类型,对于一个特定的Figure实例,只能是其中一个相关值。从这一点来看,枚举类型的相关值类似于C中的联合类型。

  • 相关阅读:
    Windows Phone开发(29):隔离存储C 转:http://blog.csdn.net/tcjiaan/article/details/7447469
    Windows Phone开发(25):启动器与选择器之WebBrowserTask 转:http://blog.csdn.net/tcjiaan/article/details/7404770
    内存知识集
    牛人榜
    如何解决SQL Server 2000 中的连接问题(邹建)
    索引
    .net事件机制
    内核对象
    使用socket tcp实现通讯
    sql技巧
  • 原文地址:https://www.cnblogs.com/isItOk/p/5454021.html
Copyright © 2011-2022 走看看