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.