Sobes.tech
Junior

Quali sono i casi nell'enumerazione (enum)?

sobes.tech AI

Risposta dell'AI

Esistono i seguenti casi nell'elenco:

  • Casi di valore grezzo: Sono associati a un valore specifico del tipo di base (Int, String, Character, Float). I valori sono impostati esplicitamente o generati automaticamente per Int e String.

    enum CompassPoint: String {
        case north = "N"
        case south // rawValue non specificato, di default sarà "south"
        case east = "E"
        case west = "W"
    }
    let direction = CompassPoint.north.rawValue // "N"
    
  • Casi con valore associato: Possono avere valori correlati di qualsiasi tipo, che forniscono un contesto o dati aggiuntivi. Non hanno tipo di base né raw-value.

    enum Barcode {
        case upc(Int, Int, Int, Int)
        case qrCode(String)
    }
    let productBarcode = Barcode.upc(8, 85909, 51226, 3)
    
  • Casi ricorsivi: Sono contrassegnati con la parola chiave indirect e consentono all'enumerazione di avere valori correlati dello stesso tipo di enumerazione. Sono usati per rappresentare strutture di dati ricorsive, come gli alberi.

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