Sobes.tech
Junior

Enum'da hangi durumlar vardır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Aşağıdaki durumlar enumda mevcuttur:

  • Ham-değer durumları: Belirli bir temel türle (Int, String, Character, Float) ilişkilidirler. Değerler açıkça belirlenir veya otomatik olarak Int ve String için üretilir.

    enum CompassPoint: String {
        case north = "N"
        case south // rawValue belirtilmemiş, varsayılan "south" olacak
        case east = "E"
        case west = "W"
    }
    let direction = CompassPoint.north.rawValue // "N"
    
  • İlişkili-değer durumları: Herhangi bir türde ilişkili değerler içerebilirler, bu da ek bağlam veya veri sağlar. Temel türleri veya raw-value'ları yoktur.

    enum Barcode {
        case upc(Int, Int, Int, Int)
        case qrCode(String)
    }
    let productBarcode = Barcode.upc(8, 85909, 51226, 3)
    
  • Yinelenen durumlar: indirect anahtar kelimesiyle işaretlenirler ve enum'un aynı türden ilişkili değerlere sahip olmasına izin verirler. Ağaçlar gibi yinelenen veri yapılarını temsil etmek için kullanılırlar.

    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))