编辑代码



/*1_写一个函数,通过并比较它们的原始值来比较两个Rank值*/
enum Rank: Int {
    case Ace = 1
    case Two, Three, Four, Six, Seven, Eight, Nine, Ten
    case Jack, Queen, King
    func simpleDescription() ->String {
        switch self {
        case .Ace:
            return "ace"
        case .Jack:
            return "jack"
        case .Queen:
            return "queen"
        case .King:
            return "King"
        default:
           return String(self.rawValue)
        }
    } 
}
let ace = Rank.Ace
let aceRawValue = ace.rawValue


/*2给Suit添加一个 color()方法,对spades和clubs返回"black",对heart和diamonds返回"red"*/
enum Suit {
    case Spades, Hearts, Diamonds, Clubs
    func simpleDescription() -> String {
        switch self {
            case .Spades:
                return "spades"
            case .Hearts:
                return "hearts"
            case .Diamonds:
                return "diamonds"
            case .Clubs:
                return "clubs"
        }
    }
}
let hearts = Suit.Hearts
let heartsDescription = hearts.simpleDescription()


/*3练习:给Card添加一个方法,创建一幅完整的扑克牌并把每张的rank和suit对应起来*/
struct Card {
    var rank: Rank
    var suit: Suit
    func simpleDescription() ->String{
        return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
    }
}
let threeOfSpads = Card(rank: .Three, suit: .Spades)
let threeOfSpadsDsecription = threeOfSpads.simpleDescription()

/*4练习:给ServerResponse和switch添加第三种情况,考虑从服务器获取日出和日落的时间*/
enum ServerResponse {
    case Result(String, String)
    case Failure(String)
}

let success = ServerResponse.Result("6:00 am", "8:09 pm")
let failure = ServerResponse.Failure("Out of cheese.")

switch success {
case let .Result(sunrise, sunset):
     let ServerResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)."
case let .Failure(message):
    print("Failure... \(message)")
}