Sobes.tech
Junior — Middle

Massiv elementlariga kirish operatoridan foydalanish chegaradan chiqishni oldini oladimi?

sobes.tech AI

AIdan javob

Swiftda, massiv elementlariga kirish operatori (masalan, array[index]) chegara oshib ketishni himoya qilmaydi. Agar indeks massiv chegaralaridan tashqarida bo‘lsa, ilova ish vaqtida xato chiqaradi va to‘xtab qoladi.

Xavfsiz kirish uchun, indeksni tekshiradigan va opsional qiymat qaytaradigan metodlardan foydalanish mumkin, masalan, indeks tekshiruvi bilan kengaytma:

extension Array {
    func safeGet(index: Int) -> Element? {
        return indices.contains(index) ? self[index] : nil
    }
}

let arr = [1, 2, 3]
print(arr.safeGet(index: 5)) // nil, xavfsiz

Shunday qilib, standart operator himoya qilmaydi, va dasturchi chegaralarni nazorat qilish uchun o‘zi javobgar bo‘lishi kerak.