Swift-类型嵌套

//***********************************//

//

//            类型嵌套

//

//***********************************//

 

struct BlackjackCard {

    //嵌套定义枚举类型Suit(花色)

    enum Suit: Character{

       case Spades = "♠"

       case Hearts = "♡"

       case Diamonds = "♢"

       case Clubs = "♣"

    }

    

    //嵌套定义枚举类型Rank(分数)

    enum Rank: Int{

       case Two = 2,Three,Four,Five,Six,Seven,Eight,Nine,Ten

       case Jack,Queen,King,Ace

       struct Values {

           let first: Int, second: Int?

       }

       var values: Values{

           switch self {

               case .Ace:

                   returnValues(first: 1,second: 11)

               case.Jack,.Queen,.King :

                   returnValues(first: 10,second: nil)

               default :

                   returnValues(first: self.rawValue, second: nil)

           }

       }

    }

    //定义BlackjackCard的属性和方法

    let rank: Rank,suit: Suit

    var description: String{

       var output = "suitis \(suit.rawValue) "

       output += "value is \(rank.values.first)"

       if letsecond = rank.values.second {

           output += " or \(second)"

       }

       return output

    }

}

 

let theAceOfSpades = BlackjackCard(rank: BlackjackCard.Rank.Ace , suit: BlackjackCard.Suit.Spades)

//简易写法

let theKingOfDiamonds = BlackjackCard(rank:.King, suit: .Diamonds)

 

println(theAceOfSpades.description) //suit is ♠ value is 1 or 11

println(theKingOfDiamonds.description) //suit is ♢ value is 10

println( BlackjackCard.Suit.Hearts.rawValue  ) //枚举值,返回定义的值 = ♡

println( BlackjackCard.Suit.Hearts.hashValue ) //哈希值,返回序号 = 1 (从0开始计数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值