zoukankan      html  css  js  c++  java
  • swift 20

    Nested Types 只是为了方便类型的整合和使用

    1. struct BlackjackCard {
    2. // nested Suit enumeration
    3. enum Suit: Character {
    4. case spades = "♠", hearts = "♡", diamonds = "♢", clubs = "♣"
    5. }
    6. // nested Rank enumeration
    7. enum Rank: Int {
    8. case two = 2, three, four, five, six, seven, eight, nine, ten
    9. case jack, queen, king, ace
    10. struct Values {
    11. let first: Int, second: Int?
    12. }
    13. var values: Values {
    14. switch self {
    15. case .ace:
    16. return Values(first: 1, second: 11)
    17. case .jack, .queen, .king:
    18. return Values(first: 10, second: nil)
    19. default:
    20. return Values(first: self.rawValue, second: nil)
    21. }
    22. }
    23. }
    24. // BlackjackCard properties and methods
    25. let rank: Rank, suit: Suit
    26. var description: String {
    27. var output = "suit is (suit.rawValue),"
    28. output += " value is (rank.values.first)"
    29. if let second = rank.values.second {
    30. output += " or (second)"
    31. }
    32. return output
    33. }
    34. }
    1. let theAceOfSpades = BlackjackCard(rank: .ace, suit: .spades)
    2. print("theAceOfSpades: (theAceOfSpades.description)")
    3. // Prints "theAceOfSpades: suit is ♠, value is 1 or 11"
  • 相关阅读:
    第八周上机作业
    第七次作业
    第七周上机
    第六周作业
    4.9上机作业
    第五周作业
    第四周作业
    第二次上机作业
    第三周作业
    第九周上机练习
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8744221.html
Copyright © 2011-2022 走看看