Sobes.tech
Junior

Ի՞նչ դեպքեր կան enumeration (enum)-ում։

sobes.tech AI

Պատասխան AI-ից

Կան հետևյալ դեպքերը ցանկում.

  • Անցանց արժեքային դեպքեր: Կապված են կոնկրետ արժեքի հետ հիմնական տիպի (Int, String, Character, Float): արժեքները հստակ սահմանվում են կամ ավտոմատ կերպով ստեղծվում են Int և String համար:

    enum CompassPoint: String {
        case north = "N"
        case south // rawValue նշված չէ, ըստ նախնական արժեքի կլինի "south"
        case east = "E"
        case west = "W"
    }
    let direction = CompassPoint.north.rawValue // "N"
    
  • Կապված արժեքային դեպքեր: Կարող են ունենալ ցանկացած տիպի կապված արժեքներ, որոնք տրամադրում են լրացուցիչ կոնտեքստ կամ տվյալներ: Չունեն հիմնական տիպ և raw-value:

    enum Barcode {
        case upc(Int, Int, Int, Int)
        case qrCode(String)
    }
    let productBarcode = Barcode.upc(8, 85909, 51226, 3)
    
  • Ռեկուրսիվ դեպքեր: Նշված են 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))