示例 一:
enum Rank:Int
{
case Ace = 7
case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten
case Jack , Queue,King
func simpleDescription()->String
{
switch self
{
case .Ace:
return "ace"
case .Jack:
return "jack"
case .Queue:
return "queue"
case .King:
return "king"
default :
return String(self.toRaw())
}
}
}
let three = Rank.Ace
println(three)
let aceRawValue = three.toRaw()
println(aceRawValue)
let ace = Rank.King
println(ace.simpleDescription())
println(Rank.fromRaw(8))
if let convertedRank = Rank.fromRaw(8) // 枚举数
{
let threeDescription = convertedRank.simpleDescription()
println(threeDescription)
println("ok")
}
else
{
println("no")
}
示例 二:
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()
示例 三:
enum ServerResponse
{
case Result(String, String)
case Error(String)
}
let success = ServerResponse.Result("6:00 am", "86:09 pm")
let failure = ServerResponse.Error("Out of cheese.")
switch success
{
case let .Result(sunrise, sunset):
let serverResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)."
println(serverResponse)
case let .Error(error):
let serverResponse = "Failure... \(error)"
println(serverResponse)
}
示例 四:
enum OptionalValue<T>
{
case None
case Some(T)
}
var possibleInteger: OptionalValue<Int> = .None
println(possibleInteger)
let aa = OptionalValue<Int>.None
let bb = OptionalValue<Int>.Some(5)
var cc:OptionalValue<Int> = .Some(7)
cc = .Some(100);
switch cc
{
case let .None:
let serverResponse = "Sunrise is at ."
println(serverResponse)
case let .Some(T):
let serverResponse = "Failure... \(T)"
println(serverResponse)
}