想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了。Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性。在Swift语言中的枚举可谓是让人眼前一亮。在Swift中的枚举不仅保留了大部分编程语言中枚举的特性,同时还添加了一些好用而且实用的新特性,在本篇博客中将领略一些Swift中枚举类型的魅力。
有小伙伴会问,不就是枚举么,有什么好说的。在Swift中的枚举怎不然,Swift中的枚举的功能要强大的多,不仅可以给枚举元素绑定值,而且可以给枚举元素关联多个值,同时还可以通过元素的值给一个枚举变量赋一个枚举值,并且枚举中可以定义枚举函数。下面将要开始窥探一下Swift中的枚举。
一、定义枚举
在Swift中枚举的定义与其他编程语言中定义枚举不同,在每个枚举元素前面多了一个关键字case, case后紧跟的是枚举元素,下面是定义枚举类型的两种方式。
1. 多个case, 每个枚举元素前都有个case
1 2 3 4 5 6 7 8 |
//枚举的定义 enum KindOfAnimal { case Cat case Dog case Cow case Duck case Sheep } |
2.一个case搞定所有元素,枚举元素之间使用逗号隔开
1 2 3 4 |
//你也可以这样定义枚举类型 enum KindOfAnimalTwo { case Cat, Dog, Cow, Duck, Sheep } |
二、枚举类型的使用
定义完枚举类型就是为了使用的对吧,直接使用枚举类型声明变量即可, 在Swift中是不需要typedef来定义枚举类型的,我们可以直接使用枚举类型。
1 2 |
//定义枚举变量并赋值 var animal1: KindOfAnimal = KindOfAnimal.Cat |
给枚举变量赋值时也可以把枚举类型名省略掉,因为在声明枚举变量时就已经指定了枚举变量的类型。
1 |
var animal2: KindOfAnimal = .Dog |
在Switch中使用我们的枚举变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//在Switch…Case中使用枚举 switch animal1 { case KindOfAnimal.Cat: println("Cat") case KindOfAnimal.Dog: println("Dog") case KindOfAnimal.Cow: println("Cow") case KindOfAnimal.Duck: println("Duck") case KindOfAnimal.Sheep: println("Sheep") default: println("error = 呵呵") } |
三、给枚举成员赋值
在Swift中声明枚举时,是可以给每个枚举成员赋一个值的,下面的City枚举的成员就被指定了一个值,如下所示:
1 2 3 4 5 6 7 |
//给枚举赋值 enum City: String{ case Beijing = "北京" case ShangHai = "上海" case GuangZhou = "广州" case ShengZhen = "深圳" } |
使用枚举变量的rawValue可以获取给每个枚举成员赋的值,代码如下:
1 2 3 4 5 6 |
//定义枚举变量并赋值 var myInCity: City = City.Beijing //获取枚举变量的值 var myInCityString: String = myInCity.rawValue; println(myInCityString) //输出:北京 |