Kotlin тилинде 'this' ачкыч сөзүнүн колдонулушун түшүндүрүңүз.
sobes.tech AI
AIден жооп
Котлинде this учурдагы класс мисалына тиешелүү. Анын колдонулушу контекстке жараша:
-
Класс методуунун ичинде:
thisчакырылган методду колдонуп жаткан мисалга шилтеме кылат.class MyClass { var value: Int = 0 fun setValue(value: Int) { // this.value класстын мүчөсүнө жетүү үчүн колдонулат // жана value методуна келген параметр this.value = value } } -
Кеңейтүү функциясы же мүчө мүнөздөмөсүнүн ичинде:
thisкеңейтүү колдонулуп жаткан обьекске шилтеме кылат.fun String.printLength() { // this — кеңейтүү функциясы колдонулуп жаткан String мисалы println("Жолдун узундугу: ${this.length}") } fun main() { "Салам".printLength() // "Жолдун узундугу: 5" чыгат } -
Кабыл алуучу (receiver) менен функциянын литералдарында:
thisкабыл алуучу объектке шилтеме кылат.fun buildString(builderAction: StringBuilder.() -> Unit): String { val sb = StringBuilder() // builderAction ичинде this — StringBuilder мисалы sb.builderAction() return sb.toString() } val myString = buildString { // this — StringBuilder append("Салам, ") append("Дүйнө!") } -
Квалификацияланган
this(эки кабыл алуучу болсо): Ички структураларда ар башка кабыл алуучулар менен карама-каршылыкты жоюу үчүн колдонулат (мисалы, ички класс, кабыл алуучу менен функция литералдары). Синтаксис%label@this, анда%label— контекстке байланышкан белгилөө.class Outer { inner class Inner { fun printThis() { // this — Inner мисалына шилтеме println("Inner this: ${this}") // Outer@this — Outer мисалына шилтеме println("Outer this: ${this@Outer}") } } fun createInner() = Inner() } fun main() { Outer().createInner().printThis() }
Жалпысынан, this Kotlinдо учурдагы контекстке — класс мисалына, кеңейтүү объектисине же функция кабыл алуучу объектке — ачык жетүүнү камсыз кылат, бул аныктыкты жогорулатат жана аталыштардын кагылышуусун алдын алат.