Paaiškinkite 'this' raktažodžio naudojimą Kotlin kalboje.
sobes.tech AI
Atsakymas iš AI
Kotlin this reiškia dabartinį klasės egzempliorių. Jo naudojimas priklauso nuo konteksto:
-
Klasės metodo viduje:
thisnuoroda į egzempliorių, iš kurio buvo iškviestas metodas.class MyClass { var value: Int = 0 fun setValue(value: Int) { // Naudojame this.value prieigos prie klasės savybės // ir value kaip metodo parametro this.value = value } } -
Plėtros funkcijos ar savybės viduje:
thisnuoroda į objektą, prie kurio taikoma plėtra.fun String.printLength() { // this čia — String egzempliorius, ant kurio iškviesta plėtros funkcija println("Eilutės ilgis: ${this.length}") } fun main() { "Sveiki".printLength() // Išves "Eilutės ilgis: 5" } -
Funkcijų su priėmėju (receiver) literatūrose viduje:
thisnuoroda į priėmėją.fun buildString(builderAction: StringBuilder.() -> Unit): String { val sb = StringBuilder() // Viduje builderAction, this nuoroda į sb (StringBuilder egzempliorius) sb.builderAction() return sb.toString() } val myString = buildString { // this čia — StringBuilder append("Labas, ") append("Pasauli!") } -
Kvalifikuotas
this(kai yra keli priėmėjai): Naudojamas neaiškumų išvengimui, kai yra įterptos struktūros su skirtingais priėmėjais (pvz., įterptos klasės, literatūros funkcijos su priėmėju). Sintaksė%label@this, kur%labelyra konteksto žymė.class Outer { inner class Inner { fun printThis() { // this nuoroda į Inner egzempliorių println("Inner this: ${this}") // Outer@this nuoroda į Outer egzempliorių println("Outer this: ${this@Outer}") } } fun createInner() = Inner() } fun main() { Outer().createInner().printThis() }
Apskritai, this Kotlin suteikia aiškų prieigą prie dabartinio konteksto, nesvarbu, ar tai klasės egzempliorius, plėtros objektas ar funkcijos priėmėjas, didinant aiškumą ir išvengiant vardų konfliktų.