ProgramlamaSwift Geliştirici

Swift'te aralıklar (range) için desen eşleştirme nasıl çalışır ve switch ile karşılaştırma yaparken hangi özelliklere dikkat edilmelidir?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap

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:

  • Aralıkların artan olması gerekir: daha küçüğünden daha büyüğüne (aksi halde aralık boş olur).
  • Eşleştirme, değer aralığın içindeyse başarılı olur.
  • Aralıklar yapı olduğundan, Comparable türleriyle eşleştirme için kullanılabilirler.

Çeldirici Soru

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ş"

Konunun ince detayları hakkında bilgi eksikliğinden kaynaklanan gerçek hata örnekleri


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ı.