enumDirection{
case north
case south
case east
case west
}var dir =Direction.north
dir =.east
switch dir {
case.north:print("north")case.east:print("east")default:print("other")}enumScore{
casepoints(Int)casegrade(Character)}var score =Score.points(99)
score =.grade("A")switch score {
caselet.points(i):print("point is \(i)")caselet.grade(i):print("grade is \(i)")}enumDate{
casedigit(year:Int, month:Int, day:Int)casestr(String)}var date =Date.digit(year:2011, month:9, day:10)
date =.str("2011-09-10")switch date {
caselet.digit(year, month, day):print(year,month,day)case.str(let value):print(value)}
原始值(Raw Values)
枚举成员可以使用相同类型的默认值预先对应,这个默认值叫做:原始值
注意:原始值不占用枚举变量的内存
如果枚举的原始值类型是Int、String,Swift会自动分配原始值
enumPokerSuit:Character{
case spade ="♠"case heart ="♥"case diamond ="♦"case club ="♣"}var suit =PokerSuit.spade
print(suit)// spadeprint(suit.rawValue)// ♠print(PokerSuit.club.rawValue)// ♣enumGrade:String{
case perfect ="A"case great ="B"case good ="C"case bad ="D"}print(Grade.perfect.rawValue)// Aprint(Grade.great.rawValue)// Bprint(Grade.good.rawValue)// Cprint(Grade.bad.rawValue)// DenumDirection:String{
case north, south, east, west
}print(Direction.north)// northprint(Direction.north.rawValue)// northenumSeason:Int{
case spring =1, summer, autumn =4, winter
}print(Season.spring.rawValue)// 1print(Season.summer.rawValue)// 2print(Season.autumn.rawValue)// 4print(Season.winter.rawValue)// 5
枚举基本用法enum Direction{ case north case south case east case west}var dir = Direction.northdir = .eastswitch dir {case .north: print("north")case .east: print("east")default: print("other")}enum Score{ case points