Bu switch deyimi vakaları üzerinde geçiş yapıyor bir Enum. .Success
'daki önde gelen nokta, Success
'un, Enum ne olursa olsun bu durumlardan biri olduğunu size söyler.
Swift Enums, Enum deposu verilerindeki durumları gösteren ilişkili değerleri (ilişkili Protokol değerleri ile karıştırılmamalıdır) kullanmanızı sağlar. Swift dokümanlar elde örneğin, standart bir bar kodu ve bir QR kodu kodlayan bir Barkod Enum sahiptir:
enum Barcode {
case UPCA(Int, Int, Int, Int)
case QRCode(String)
}
Bu UPCA barkodlar dört Orta değer verilir ve QR kodları, tek bir String değeri verilir belirtmekte okunabilir ve yazılabilir. Örneğin, var productBarcode = Barcode.UPCA(8, 85909, 51226, 3)
, .UPCA(8, 85909, 51226, 3)
numaralı Barcode
türünde bir nesne oluşturur; Enum'un tam adını (yalnızca önde gelen nokta) kullanmanız gerekmez, çünkü tür derleyici tarafından çıkarılabilir.
Bir Enum durumlarını değiştirirken, eşleşen davanın ilişkili tip değerlerini değişkenlere atayabilir ve ardından bu değişkenleri bu durumda blokta kullanabilirsiniz.
switch productBarcode {
case let .UPCA(numberSystem, manufacturer, product, check):
print("UPC-A: \(numberSystem), \(manufacturer), \(product), \(check).")
case let .QRCode(productCode):
print("QR code: \(productCode).")
}
productBarcode
durum .UPCA
ise, o zaman birinci durumda eşleşir ve bu değişkenlerin tahsis edilmektedir ve bu durum .QRCode
olduğu benzer eğer.
Değişken atama listesinde bir alt çizgi, Swift'e bir değişkene atamak yerine oradaki değeri atmasını söyler. Kodunuzda, yalnızca ilişkili üç türden ilk değeri upload
olarak adlandırılan sabite atar.
Neye cevap veriyorsunuz? Soruyu düzgün okudun mu? –
Cevabın sonucu _, _ anlamına gelir. Başlangıç, Enums ile deneyimsiz olanlar için bir bağlamdır ve sadece "değer atılır" dan ne olup bittiğine dair daha derinlemesine bir cevap verir. – BallpointBen
Ama nerede söz konusu enum nedir? Soru "WildCard" hakkında. –