Kotlin tilida 'this' so'zining ishlatilishini tushuntiring.
sobes.tech AI
AIdan javob
Kotlin'da this hozirgi sinf nusxasiga ishora qiladi. Uning ishlatilishi kontekstga bog‘liq:
-
Sinf metodida ichida:
thischaqirilgan metod bo‘lsa, unga taalluqlidir.class MyClass { var value: Int = 0 fun setValue(value: Int) { // this.value bilan sinf xususiyatiga kirish // va value parametr uchun this.value = value } } -
Extension funksiyasi yoki xususiyatida:
thisextension qo‘llaniladigan obyekti anglatadi.fun String.printLength() { // this bu yerda extension funksiyasining chaqirilgan String nusxasi println("Qator uzunligi: ${this.length}") } fun main() { "Salom".printLength() // "Qator uzunligi: 5" chiqaradi } -
Receptor bilan funksiya literal ichida:
thisreceptorga ishora qiladi.fun buildString(builderAction: StringBuilder.() -> Unit): String { val sb = StringBuilder() // builderAction ichida, this sb (StringBuilder nusxasi) ga ishora qiladi sb.builderAction() return sb.toString() } val myString = buildString { // this bu yerda StringBuilder append("Salom, ") append("Dunyo!") } -
Kvalifikatsiyalangan
this(bir nechta receptor bo‘lsa): Bu, ichma-ich tuzilmalar va turli receptorlar bilan bo‘lsa, noaniqlikni bartaraf etish uchun ishlatiladi. Sintaksis%label@this, bu yerda%labelkontekst bilan bog‘langan belgi.class Outer { inner class Inner { fun printThis() { // this Inner nusxasiga ishora qiladi println("Inner this: ${this}") // Outer@this Outer nusxasiga ishora qiladi println("Outer this: ${this@Outer}") } } fun createInner() = Inner() } fun main() { Outer().createInner().printThis() }
Umuman olganda, Kotlin'da this joriy kontekstga aniq kirishni ta'minlaydi, bu sinf nusxasi, kengaytma obyekti yoki funksiya literalining qabul qiluvchisi bo‘lishi mumkin, va aniqlikni oshiradi hamda nomlar to‘qnashuvlarini oldini oladi.