//枚举类型 ==成员+计算属性,类型属性+下标脚本+方法
//enum 的关键字不能省略//1>定义任意类型的枚举成员enumanyEnum{
caseNorth(Int)
caseSouth(String)
caseEast(Double)
caseWest(String)
}
//North 可以赋值任意类型
//2>指定类型的枚举成员
enumDerication {
caseNorthcaseSouth(Int)
caseEastcaseWest
}
//North 只能字符串
//3.可以初始化枚举成员的值,但是原始值必须是唯一的,不能相同
//4必须定义成员 ,不能一个成员也没有
//注意1case不能省略 2 可以一个case 多个成员,写成一行
enumDerication1:String {
caseNorth,South,East,West
}
//5实例化枚举类型的对象
// let/var 枚举对象=枚举类型.成员名letnewVlaue=Derication1.North
//6.访问枚举类型中成员的原始值
//1>let str=Derication1.North.rawValue
//2>自动自增 ,如果North不设置值 为 0,1,2enumDerication2:Int {
caseNorth=3caseSouth
//4caseEast
//5caseWest
//6
}
//3 通过原始值获取成员
enumZoo:Int {
caseDog=5
caseCat=10
casePig=20
}
let ace=Zoo.Dog
let dogRawValue=ace.rawValue
print(dogRawValue)
//判断 获取成员所对应的值(待查找问题)
//if let convertedZoo = Zoo.fromValue {
//
//}
//7枚举成员与swithch匹配
switchace {
case.Dog:
print("Dog")
case.Cat:
print("Cat")
default:
//default不能省
print("Pig")
}
//8成员关联值letmySouth = Derication.South(100)
//注意 @1.个数@数据类型 @3指定数据类型的枚举类型不需要关联值
//9定义计算属性,类型属性,属性监视器 枚举对象名.属性
//10 可以定义下标脚本 成员[index]//枚举里可以定义方法 @1 成员.方法名
// @2 类型方法 方法前加staic 枚举类型名.方法名(参数)//类.枚举类型,结构的区别
//1>类是引用类型 ,支持继承
//2结构和枚举类型 是值类型 ,不支持继承 ,
//3三种可以相互嵌套