枚举的使用语法:
enum someEnumer { // 枚举的成员值 }
以下是方向的一个例子:
enum direction { case Up case Down case Left case Right }
以下摘自Swift 中文翻译组
注意: 不像 C 和 Objective-C 一样,Swift 的枚举成员在被创建时不会被赋予一个默认的整数值。在上面的CompassPoints例子中,North,South,East和West不是隐式的等于0,1,2和3。相反的,这些不同的枚举成员在CompassPoint的一种显示定义中拥有各自不同的值。
多个成员值可以出现在同一行上,用逗号隔开:
enum Name { case Kerry,John,Jully,Sally }
我们可以这样取值:
var someBodyName = Name.John
someBodyName的类型为已知,我们可以不用写类型名,使用 .成员值 赋值即可:
someBodyName = .Jully
匹配枚举值和Switch语句:
switch someBodyName { case .Kerry: println("is kerry") case .John: println("is john") case .Jully: println("is jully") case .Sally: println("is sally") }
注意:如果我们没有把所有值都匹配时,我们需要加一个Default默认值,不然编译会报错。
当不需要匹配全部成员值时,我们需要使用default分支:
switch someBodyName { case .Kerry: println("is kerry") default: print("is somebody name") }
*原始值:
以下是原始值的一个例子。在枚举里也可以定义方法:
enum age: Int { case Young = 0,Child,Old,NoOne func toAge() -> String { // 对自身的原始值进行判断时,使用SELF switch self { case .Young: return "young" case .Child: return "child" case .Old: return "old" default: return "default" } } }
使用枚举成员的toAge方法可以访问该枚举成员的原始值:
let other = age.Young.toAge()
// other: young
博文作者:GarveyCalvin