Junior
Enum-də hansı hallar mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
Aşa aşağıdakı hallar qeydiyyatda mövcuddur:
-
Xam dəyər halları: Müəyyən bir əsas növ ilə əlaqələndirilir (Int, String, Character, Float). Dəyərlər açıq şəkildə təyin edilir və ya avtomatik olaraq Int və String üçün yaradılır.
enum CompassPoint: String { case north = "N" case south // rawValue qeyd olunmayıb, standart olaraq "south" olacaq case east = "E" case west = "W" } let direction = CompassPoint.north.rawValue // "N" -
Əlaqəli dəyər halları: Hər hansı növ ilə əlaqəli dəyərlərə sahib ola bilər, əlavə kontekst və ya məlumat təmin edir. Onlar əsas növ və raw-value-ya malik deyillər.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let productBarcode = Barcode.upc(8, 85909, 51226, 3) -
Rekursiv hallar:
indirectaçar sözü ilə qeyd olunur və enumerasiyanın eyni növ ilə əlaqəli dəyərlərə sahib olmasına imkan verir. Bu, rekursiv məlumat strukturlarını, məsələn, ağacları təmsil etmək üçün istifadə olunur.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))