Swift'te aralık eşleştirme genellikle switch-case yapısında değerleri aralıklarla karşılaştırmak için kullanılır. Bunun için ..< (yarı açık aralık) ve ... (kapalı aralık) operatörleri uygulanır:
let score = 76 switch score { case 0..<60: print("Yetersiz") case 60..<80: print("Yeterli") case 80...100: print("Mükemmel") default: print("Geçersiz değer") }
Özellikler:
Eğer switch içinde üst sınırı değerini içermeyen bir aralık kullanılırsa (örneğin, 0..<5) ve değişken 5'e eşitse ne olur?
Çoğu kişi böyle bir durumda case'in işleyeceğini söyler, ancak bu yanlıştır: ..< operatörü üst sınırı dahil etmez. Örnek:
let value = 5 switch value { case 0..<5: print("0-4") case 5: print("beş") default: print("diğer") } // Çıktı: "beş"
Hikaye
Bir geliştirici, kullanıcı puanlarını aralıklarla gösterirken kapalı aralık kullandı ve sağ sınır maksimum değerden yüksek oldu. Bu, bazı değerlerin birden fazla aralığa düşmesine ve mantığın hatalı çalışmasına neden oldu.
Hikaye
Bir uygulamada, yanlış operatör kullanımı nedeniyle bir değerin herhangi bir aralığa girmediği bir switch-case kullanıldı (örneğin, 0...10 ve 11...20 arasında — değer 10.5 hiçbir yere düşmedi). Hata yalnızca prod'da fark edildi.
Hikaye
Hizmette tarihler karşılaştırılırken yanlış bir şekilde yarı açık aralık kullanılarak aralıkların son tarihi dahil edilmedi: sonuç olarak geçerli aralıklar hariç tutuldu ve son geçerli günde rezervasyon yapılması mümkün olmadı.