嵌套类型实践、引用嵌套类型。
枚举常被用于为特定类或结构体实现某些功能。类似地,枚举可以方便的定义工具类或结构体,从而为某个复杂的类型所使用。为了实现这种功能,Swift允许定义嵌套类型,可以在支持的类型中定义嵌套的枚举、类和结构体。
要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的{}内,而且可以根据需要定义多级嵌套。
嵌套类型实践:
struct BlackjackCard{
//嵌套的Suit枚举
enum Suit:Character{ //描述了扑克牌的四种花色
case Spades="?", Hearts="?", Diamonds="?", Clubs="?"
}
//嵌套的Rank枚举
enum Rank:Int{ //描述扑克牌的值,A~10,J,Q,K
case Two=2,Three, Four, Five, Six, Seven, Eight, Nine, Ten
case Jack, Queue, King, Ace
struct Values{
let first:Int, Seocnd:Int?
}
var values:Values{
switch self{
case .Ace:
return Values(first:1, second:11)
case .Jack, .Queue, .King:
return Values(first:10, second:11)
default:
return Values(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 heartsSymbol=BlackjackCard.Suit.Hearts.rawValue