Junior
Care sunt cazurile existente în enumerare (enum)?
sobes.tech AI
Răspuns de la AI
Există următoarele cazuri în enumerare:
-
Cazuri de valoare brută: Sunt asociate cu o valoare specifică a tipului de bază (Int, String, Character, Float). Valorile sunt setate explicit sau generate automat pentru Int și String.
enum CompassPoint: String { case north = "N" case south // rawValue nu este specificat, va fi implicit "south" case east = "E" case west = "W" } let direction = CompassPoint.north.rawValue // "N" -
Cazuri cu valoare asociată: Pot avea valori legate de orice tip, care oferă context suplimentar sau date. Nu au tip de bază și nici raw-value.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let productBarcode = Barcode.upc(8, 85909, 51226, 3) -
Cazuri recursive: Sunt marcate cu cuvântul cheie
indirectși permit enumerării să aibă valori legate de același tip de enumerare. Sunt folosite pentru a reprezenta structuri de date recursive, cum ar fi arborii.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))