枚举 enum 的简单用法
rawValue:原始值
enum director{
case north
case west
case sourth
case east
}
enum names{
case iyaqi,wangdi,xiaoyu,wenwen
}
var someOneName = names.iyaqi
//如果已经将枚举的某个值赋给某个变量,也可以直接通过.加枚举的其他值赋给该变量
someOneName = .xiaoyu
enum BarCode{
case UPCA(Int,Int,Int,Int)
case QRCode(String)
}
var code = BarCode.UPCA(8, 8, 8, 8)
code = .QRCode("dadadsadadasd")
switch code{
case let .UPCA( one , two , three, four):
print("\(code)")
case let .QRCode( barCode):
print("\(code)")
}
enum asciiCharacter:Character{
case Tab = "\t"
case lineFeed = "\n"
case CarriageReturn = "\r"
}
//定义一个联合枚举
indirect enum ArithmeticExpression{
case num(Int)
case add(ArithmeticExpression,ArithmeticExpression)
case muti(ArithmeticExpression,ArithmeticExpression)
}
func evaluate(expression:ArithmeticExpression)->Int{
switch expression{
case .num(let value):
return value
case let .add(left, right):
return evaluate(left) + evaluate(right)
case .muti(let left, let right):
return evaluate(left) * evaluate(right)
}
}
var five = ArithmeticExpression.num(5)
var four = ArithmeticExpression.num(4)
var a = ArithmeticExpression.add(five, four)
evaluate(a)
a = ArithmeticExpression.muti(five, four)
evaluate(a)