importFoundation
//swift:枚舉
//不用跟整型數(shù)字關(guān)聯(lián),默認也沒有跟整型數(shù)字關(guān)聯(lián)
//可以跟任意類型關(guān)聯(lián),比如整型,浮點型,字符串。
/*
不跟任何數(shù)據(jù)關(guān)聯(lián)的枚舉格式
enum自定義的枚舉類型{
case枚舉值0
case枚舉值1
case枚舉值2
...
}
如果是關(guān)聯(lián)了數(shù)據(jù)的枚舉格式:
enum自定義的枚舉類型:關(guān)聯(lián)的數(shù)據(jù)類型(比如Int,Double,String){
case枚舉值0 =值0
case枚舉值1 =值1
...
}
*/
//c語言:枚舉作用:將一些有特定意義的英文跟數(shù)字一一對應(yīng)起來
enumMonth{
casejan
casefeb
casemar
caseapr
casemay
}
//如果枚舉值關(guān)聯(lián)的是整型值的話,后面的枚舉值會自動累加1
enumnumber:Int{
caseone =10
casetwo =20
casethree =30
casefour
casefive
}
//如果枚舉類型跟非整型值進行關(guān)聯(lián)的話,所有的枚舉值都應(yīng)該關(guān)聯(lián)上特定的value值
//注意”=“一定要是英文狀態(tài)下的
enumLength:Double{
caseshort =2.3
casemiddle =4.6
caselarge =6.9
}
enumGrade:String{
caseone ="First"
caseTwo ="Second"
caseThree ="Third"
}
//創(chuàng)建枚舉變量
letmonth0 =Month.jan
//如果明確了變量或者常量是屬于某一種枚舉類型,那么復(fù)制可以直接使用.枚舉值
letmonth1:Month= .feb
//hashValue跟枚舉值的排序有關(guān)
print(month0,month0.hashValue)
print(month1,month1.hashValue)
print("\n")
letnum0 =number.one
letnum1:number= .five
//枚舉值.rawValue訪問到枚舉值關(guān)聯(lián)的值(枚舉變量有關(guān)聯(lián)的時候才會出現(xiàn))
//枚舉值.hashValue訪問到的是該枚舉值在枚舉類型中的位置
print("num0 =\(num0),\(num0.hashValue),\(num0.rawValue)\n")
print("num1 =\(num1),\(num1.hashValue),\(num1.rawValue)\n")