switch productBarcode {
case .upc(let numberSystem, let manufacturer, let product, let check):
print("\(numberSystem) \(manufacturer) \(product) \(check)")
case .qrCode(let productCode):
print("\(productCode)")
}
原始值
作为关联值的替代选择,枚举成员可以被默认值预填充,这些原始值类型必须相同。
enum ASCIIControlCharacter:Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}
enum ArithmeticExpression {
case number(Int)
indirect case addition(ArithmeticExpression,ArithmeticExpression)
indirect case multiplication(ArithmeticExpression,ArithmeticExpression)
}
可以在枚举类型开头加上indirect关键字来标明它的所有成员都可递归的:
indirect enum ArithmeticExpression {
case number(Int)
case addition(ArithmeticExpression,ArithmeticExpression)
case multiplication(ArithmeticExpression,ArithmeticExpression)
}
使用:
let five = ArithmeticExpression.number(5)
let four = ArithmeticExpression.number(4)
let sum = ArithmeticExpression.addition(five, four)
let product = ArithmeticExpression.multiplication(sum, ArithmeticExpression.number(2))