10.25枚举
importFoundation
//swift:枚举
//不用跟整型数字关联,默认也没有跟整型数字关联
//可以跟任意类型关联,比如整型,浮点型,字符串。
/*
不跟任何数据关联的枚举格式
enum自定义的枚举类型{
case枚举值0
case枚举值1
case枚举值2
...
}
如果是关联了数据的枚举格式:
enum自定义的枚举类型:关联的数据类型(比如Int,Double,String){
case枚举值0 =值0
case枚举值1 =值1
...
}
*/
//c语言:枚举作用:将一些有特定意义的英文跟数字一一对应起来
enumMonth{
casejan
casefeb
casemar
caseapr
casemay
}
//如果枚举值关联的是整型值的话,后面的枚举值会自动累加1
enumnumber:Int{
caseone =10
casetwo =20
casethree =30
casefour
casefive
}
//如果枚举类型跟非整型值进行关联的话,所有的枚举值都应该关联上特定的value值
//注意”=“一定要是英文状态下的
enumLength:Double{
caseshort =2.3
casemiddle =4.6
caselarge =6.9
}
enumGrade:String{
caseone ="First"
caseTwo ="Second"
caseThree ="Third"
}
//创建枚举变量
letmonth0 =Month.jan
//如果明确了变量或者常量是属于某一种枚举类型,那么复制可以直接使用.枚举值
letmonth1:Month= .feb
//hashValue跟枚举值的排序有关
print(month0,month0.hashValue)
print(month1,month1.hashValue)
print("\n")
letnum0 =number.one
letnum1:number= .five
//枚举值.rawValue访问到枚举值关联的值(枚举变量有关联的时候才会出现)
//枚举值.hashValue访问到的是该枚举值在枚举类型中的位置
print("num0 =\(num0),\(num0.hashValue),\(num0.rawValue)\n")
print("num1 =\(num1),\(num1.hashValue),\(num1.rawValue)\n")