Sobes.tech
Junior

Kotlin'da kengaytirish funksiyalari nima?

sobes.tech AI

AIdan javob

Kengaytiriladigan funksiyalar (extension functions) — bu mavjud sinflarga yangi funksionallik qo'shish imkonini beradigan, ularning manba kodini o'zgartirmasdan va meros olishga murojaat qilmasdan ishlatiladigan funksiyalar.

Ular sinf tashqarisida e'lon qilinadi va <SinfHarakati>.funksiya<Parametrlar> sintaksisi yordamida unga bog'lanadi. Kengaytiriladigan funksiyada this chaqirilayotgan sinfning nusxasiga ishora qiladi.

Misol:

// String sinfi uchun kengaytiriladigan funksiya e'lon qilish
fun String.addGreeting(): String {
    return "Salom, $this!"
}

fun main() {
    val name = "Dunyo"
    // Kengaytiriladigan funksiyani chaqirish
    println(name.addGreeting()) // "Salom, Dunya!" chiqaradi
}

Asosiy afzalliklar:

  • Kodning tozaligi: Statik metodlar bilan yordamchi sinflar yaratish yoki faqat funksionallik qo'shish uchun sinflarni meros qilish shart emas.
  • O'qilishi: Kengaytiriladigan funksiyalar chaqiriqlari oddiy sinf metodlariga o'xshaydi.
  • Modullilik: Funksionallik lokal doirada qo'shilishi mumkin.

Cheklovlar:

  • Kengaytiriladigan funksiyalar sinfning maxfiy yoki himoyalangan a'zolariga kirish imkoniga ega emas.
  • Sinf metodi bilan kengaytiriladigan funksiya o'rtasida nomuvofiqlik bo'lsa, sinf metodi ustunlik qiladi.