Swift语言中,具有类特征的类型包括三种,即枚举类型、结构类型(包括基本类型,基本类型实际都是结构类型的特例)、类。其中枚举类型、结构类型是属于值类型,类属于引用类型。三种类型都可以添加属性、方法、下标方法,能够使用扩展进行功能扩展,使用协议等。
一、 枚举
枚举定义了一种包含一组相关值的公共类型。枚举是Swift中的一种与类类似的类型,具有许多传统类才有的特征,例如计算属性、实例方法,能够通过扩展或协议增强功能等。
1.1 枚举定义
Swift 语言的枚举类型的定义语法如下:
enum CompassPoint {
case North
case South
case East
case West
}
枚举语法以一个关键字enum来标识,enum后面包含一个枚举类型名字,枚举定义全部放到一对大括号中。
在枚举中定义的值称为枚举成员值,用case关键字来指示一个新的枚举成员值。
与C和Objective-C语言的枚举类型不同的是:在Swift中不需要为枚举成员分配一个默认的整数值。
如果为枚举成员提供值,该值可以是一个字符串、一个字符或者是一个任意整数或浮点数。
枚举成员值可以定义到一行中,并用逗号分割。
enum Planet {
case Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune
}
每个新定义的枚举都属于一种新的独立的类型。
1.2 枚举的使用
可以为一个常量或变量分配一种枚举类型的值,如:
var directionToHead =CompassPoint.West
以上定义的变量directionToHead可以推断为是一种CompassPoint类型的枚举变量,因此你可以设置该变量为CompassPoint类型的其它值,如:
directionToHead = .East //枚举类型被省略
枚举也能够在switch语句中使用,用来匹配独立的枚举值:
directionToHead = .South
switch directionToHead {
case .North:
println("Lots of planets have a north")
case .South:
println("Watch out for penguins")
case .East:
println("Where the sun rises"