枚举

在 Swift 中,枚举(enum)是一种自定义数据类型,允许定义一组相关的值。枚举可以具有附加的值(关联值)和方法,非常灵活和强大。以下是 Swift 中枚举的一些基本概念和示例:

基本语法

enum Direction {
    case north
    case south
    case east
    case west
}

使用枚举

你可以通过以下方式使用枚举:

let currentDirection = Direction.north

switch currentDirection {
case .north:
    print("Heading North")
case .south:
    print("Heading South")
case .east:
    print("Heading East")
case .west:
    print("Heading West")
}

关联值

枚举可以有关联值,允许存储额外的信息:

enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}

var productBarcode = Barcode.upc(123, 456, 789, 0)

switch productBarcode {
case .upc(let number1, let number2, let number3, let number4):
    print("UPC: \(number1) \(number2) \(number3) \(number4)")
case .qrCode(let code):
    print("QR Code: \(code)")
}

原始值

枚举也可以定义原始值,所有的枚举成员可以具有相同类型的原始值:

enum Planet: Int {
    case mercury = 1
    case venus
    case earth
    case mars
}

let earthOrder = Planet.earth.rawValue  // 3

递归枚举

枚举也可以是递归的,这意味着它可以包含自身的实例:

enum ArithmeticExpression {
    case number(Int)
    indirect case addition(ArithmeticExpression, ArithmeticExpression)
    indirect case multiplication(ArithmeticExpression, ArithmeticExpression)
}

let expression = ArithmeticExpression.addition(
    .number(2),
    .multiplication(.number(3), .number(4))
)

总结

1、基本的列举

2、关联至

3、递归枚举

Last updated