编辑代码

//枚举的定义
enum MonthFull {
    case January
    case February
    case March
    case April
    case May
    case June
    case July
    case August
    case September
    case October
    case November
    case December
}
//枚举的定义
enum Month {
    case January,February,March,April,May,June, July,August,September,October,November,December
}
//枚举赋值
var thisMonth = Month.August
var nextMonth : Month = .September//类型声明后,赋值过程中可以省略枚举类型名
//读取枚举值
switch nextMonth {
case .January, .February, .March, .April, .May, .June : print("It belongs first half year")
default : print("It belongs second half year")
}
//定义原始值
enum Car:Int{
    case truck = 0
    case sportsCar
    case SUV
    case MPV
    case limo
}
//访问原始值
var myCar=Car.SUV
var rawValue=myCar.rawValue
print(rawValue)
myCar=Car.limo
rawValue=myCar.rawValue
print(rawValue)
let yourCar = Car(rawValue:1)
print(yourCar)

//关联值
enum transportFee {
    case byAir(Int,Int,Int)
    case byCar(Int,Int)
    case byTrain(Int)
}
//关联值的赋值
var fromShanghaiToBeijing = transportFee.byTrain(299)
fromShanghaiToBeijing = .byAir(800, 230, 50)
//访问关联值
switch fromShanghaiToBeijing {
case .byAir(let ticketFee, let tax, let insurance) : print("The sum fee is \(ticketFee + tax + insurance) by air")
case .byCar(let fuelFee, let highwayFee) : print("The sum fee is \(fuelFee + highwayFee) by car")
case .byTrain(let ticketFee) : print("The sum fee is \(ticketFee) by Train")
}
//可选型的实现
var hobby: String?
hobby = "Basketball"
hobby = nil
switch hobby {
    case .none:
        print("No hobby")
    case .some(let hobbyName):
        print("Hobby is \(hobbyName)")
}