Sobes.tech
Junior

Welke gevallen zijn er in de enumeratie (enum)?

sobes.tech AI

Antwoord van AI

De volgende gevallen bestaan in de enumeratie:

  • Raw-waarde gevallen: Worden geassocieerd met een specifieke waarde van het basistype (Int, String, Character, Float). De waarden worden expliciet ingesteld of automatisch gegenereerd voor Int en String.

    enum CompassPoint: String {
        case north = "N"
        case south // rawValue niet gespecificeerd, standaard wordt "south"
        case east = "E"
        case west = "W"
    }
    let direction = CompassPoint.north.rawValue // "N"
    
  • Geassocieerde waarde gevallen: Kunnen gerelateerde waarden van elk type hebben, die extra context of gegevens bieden. Ze hebben geen basistype en geen raw-value.

    enum Barcode {
        case upc(Int, Int, Int, Int)
        case qrCode(String)
    }
    let productBarcode = Barcode.upc(8, 85909, 51226, 3)
    
  • Recursieve gevallen: Worden gemarkeerd met het sleutelwoord indirect en stellen de enumeratie in staat om gerelateerde waarden van hetzelfde type enumeratie te hebben. Ze worden gebruikt om recursieve datastructuren zoals bomen te vertegenwoordigen.

    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))