Swift nested types

/*

   Nested types

   one type nexted in other type

 */


struct BlackJackCard{

    enum Suit: String{

        case spades = "heitao",

        hearts="hongtao",diamonds="fangkuai",clubs="caohua"

    }

    enum Rank:Int{

        case two=2,three,four,five,six,seven,eight,nine,ten

        case jack,queen,king,ace

        struct Value{

            let first:Int,second:Int?

        }

        var values:Value{

            switch self {

            case .ace:

                returnValue(first:1,second:11)

            case .jack,.queen,.king:

                returnValue(first:10,second:nil)

            default:

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

            }

        }

    }

    

    let rank:Rank,suit:Suit

    var description:String{

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

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

        if let second =rank.values.second{

            output += " or \(second)"

        }

        return output

    }

}


let theAceOfSpades = BlackJackCard(rank:.ace,suit:.spades)


print("theAceOfSpades:\(theAceOfSpades.description)")


enum Test:Int{

    case a=2,b,c,d,e

    case f,g,h

}


let heartsSymbol = BlackJackCard.Suit.hearts.rawValue


var test=Test.f.rawValue


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值