Junior
Кои са случаите в изброяването (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))