Junior
Aké prípady existujú v enum (enum)?
sobes.tech AI
Odpoveď od AI
V zozname sú nasledovné prípady:
-
Surové hodnotové prípady: Sú spojené s konkrétnou hodnotou základného typu (Int, String, Character, Float). Hodnoty sú explicitne nastavené alebo automaticky generované pre Int a String.
enum CompassPoint: String { case north = "N" case south // rawValue nie je uvedený, predvolene bude "south" case east = "E" case west = "W" } let direction = CompassPoint.north.rawValue // "N" -
Prípady s priradenou hodnotou: Môžu mať priradené hodnoty akéhokoľvek typu, ktoré poskytujú ďalší kontext alebo údaje. Nemajú základný typ ani raw-value.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let productBarcode = Barcode.upc(8, 85909, 51226, 3) -
Rekurzívne prípady: Sú označené kľúčovým slovom
indirecta umožňujú, aby zoznam mal priradené hodnoty rovnakého typu zoznamu. Používajú sa na reprezentáciu rekurzívnych štruktúr dát, ako sú stromy.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))