//枚舉類型 ==成員+計算屬性,類型屬性+下標腳本+方法
//enum 的關(guān)鍵字不能省略//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不設(shè)置值 為 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成員關(guān)聯(lián)值letmySouth = Derication.South(100)
//注意? @1.個數(shù)@數(shù)據(jù)類型 @3指定數(shù)據(jù)類型的枚舉類型不需要關(guān)聯(lián)值
//9定義計算屬性,類型屬性,屬性監(jiān)視器? 枚舉對象名.屬性
//10 可以定義下標腳本 成員[index]//枚舉里可以定義方法 @1 成員.方法名
// ? ? ? ? ? ? ? ?@2 類型方法 方法前加staic? 枚舉類型名.方法名(參數(shù))//類.枚舉類型,結(jié)構(gòu)的區(qū)別
//1>類是引用類型 ,支持繼承
//2結(jié)構(gòu)和枚舉類型 是值類型 ,不支持繼承 ,
//3三種可以相互嵌套