Junior — Middle
Bir metod ichida generiklarda ruxsat etilgan parametr turlarini qanday cheklash mumkin?
sobes.tech AI
AIdan javob
Swift'da, metod ichidagi generiklarda ruxsat etilgan parametr turlarini cheklash uchun protokollar yoki sinflar orqali where kalit so'zi yoki meros olish orqali cheklash sintaksisi ishlatiladi.
Equatable protokoliga mos kelishi kerak bo'lgan parametr turini cheklash misoli:
func findIndex<T: Equatable>(of valueToFind: T, in array: [T]) -> Int? {
for (index, value) in array.enumerated() {
if value == valueToFind {
return index
}
}
return nil
}
Agar yanada murakkab cheklash kerak bo'lsa, where ishlatish mumkin:
func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
if item1 < item2 {
print("item1, item2dan kichik")
}
}
Shunday qilib, cheklashlar kompilatorga parametr turlarining belgilangan talablarni qondirishini tekshirish imkonini beradi, bu esa kodning xavfsizligi va bashorat qilinuvchanligini oshiradi.