枚举定义了一组具有相关性的数据,如常量,字符串等,使开发者可以在代码中以一个安全的方式来使用这些值,以有助于提供代码的可读性。本节讲主要讲解枚举的定义,成员的定义,实例化对象,访问原始值等内容。

  定义枚举

  在Swift中,枚举可以分为两种:任意类型的枚举(没有指定数据类型);另一种是指定数据类型的枚举类型。以下就是这两种枚举类型的定义。

  1.任意类型的枚举类型

  任意类型的枚举就是没有指定数据类型的枚举,它的定义需要使用到关键字enum,其语法形式如下。

  enum  枚举名称{

  ……

  }

  

  注意:枚举名称要符合标识符的名称规则。此时的枚举类型是一个具有任意类型的类型。

  2.指定数据类型的枚举类型

  指定数据类型的枚举类型也是使用enum关键字进行定义,但是要在枚举名称后面添加":"冒号遗迹数据类型。其定义形式如下

  enum  枚举名称:数据类型{

  ……

  }

 

eg:

  以下将分别定义两个枚举类型,代码如下

  enum  NewEnum1{

  }

 

  enum  NewEnum2:String{

  }

  在此代码中,NewEnum1枚举时没有指定数据类型的枚举,它是人意类型的枚举;NewEnum2枚举时一个字符串类型的枚举。

 

  实例化枚举的对象

  在使用枚举之前,首先要对枚举进行实例化。枚举的实例化的语法形式如下。

  let/var  枚举对象名=枚举名称.成员名

  或者是

  枚举名称. 成员们

  注意:枚举类型的实例化必须要使用成员,而不是其他。

 

eg:

  以下将定义一个枚举类型,然后再进行实例话。代码如下。

  enum  num:Int{

  case  name1=1

  case  name2=2

  case  name3=3

}

eg:

  let  枚举对象名=num.name3

  或者

  num.name3

 

  访问枚举中成员的原始值

  使用枚举匹配switch语句可以用来获取活着访问成员值,除此之外,Swift还提供了2个访问原始值的方法:一个是rawValue属性;另一个是rawValue()函数

  1.rawValue

  rawValue属性可以通过枚举中的成员对响应的原始值进行访问。其语法形式如下。

  let/var  常量名/变量名=枚举名称.成员名称.rawValue

eg:

  以下将使用rawValue属性实现原始值的访问。代码如下

  enum  Digital:Int{

  case  one=1

  case  two=2

  case  three=3

  case  four=4

  case  five=5

}

  let  onevalue=Digital.one.rawValue//访问成员one的原始值

  print(onevalue)

  let  fivevalue=Digital.five.rawValue//访问成员five的原始值

  print(fivevalue)

此时程序运行,会看到如下的结果。

  1

  5

 

  2.fromRaw()

  rawValue()函数正好与rawValue属性方法的功能相反。它的功能时通过原始值来获取成员。其语法形式如下。

  let/var  常量名/变量名=枚举名称(rawValue:原始值)