Junior
Milyen esetek vannak az enumerációban (enum)?
sobes.tech MI
Válasz az MI-től
A felsorolt esetek a következők az enumerációban:
-
Nyersérték-esetek: Egy adott alap típushoz (Int, String, Character, Float) kapcsolódnak. Az értékeket egyértelműen beállítják vagy automatikusan generálják az Int és String esetében.
enum CompassPoint: String { case north = "N" case south // rawValue nincs megadva, alapértelmezettként "south" lesz case east = "E" case west = "W" } let direction = CompassPoint.north.rawValue // "N" -
Kapcsolt érték-esetek: Bármilyen típusú kapcsolt értékekkel rendelkezhetnek, amelyek további kontextust vagy adatokat nyújtanak. Nincs alap típusuk és raw-értékük.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let productBarcode = Barcode.upc(8, 85909, 51226, 3) -
Rekurzív esetek: Az
indirectkulcsszóval vannak megjelölve, és lehetővé teszik, hogy az enumeráció ugyanazon típusú kapcsolt értékeket tartalmazzon. Ezeket adatok rekurzív szerkezetek, például fák reprezentálására használják.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))