Junior
Ի՞նչ դեպքեր կան enumeration (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))