Back to questions
Junior
101
questionbank
Какие существуют кейсы в перечислении (enum)?
Sobes Copilot
Get answers in real time
Answer from AI
sobes.tech AI
Существуют следующие кейсы в перечислении:
-
Raw-value кейсы: Ассоциируются с конкретным значением базового типа (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" -
Associated-value кейсы: Могут иметь связанные значения любых типов, которые предоставляют дополнительный контекст или данные. Не имеют базового типа и raw-value.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let productBarcode = Barcode.upc(8, 85909, 51226, 3) -
Recursive кейсы: Помечаются ключевым словом
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))