Ներկայացրեք 'this' բանալի բառի օգտագործումը Kotlin-ում։
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() // Տպում է "Տողի երկարությունը: 4" } -
Լիտերալ ֆունկցիաների ներսում՝ ընդունող (receiver):
thisհղում է ընդունողին:fun buildString(builderAction: StringBuilder.() -> Unit): String { val sb = StringBuilder() // ներսում builderAction, this հղում է sb-ին (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 Կոտլինում տրամադրում է հստակ հասանելիություն ընթացիկ կոնտեքստին՝ լինի դա դասի օրինակ, ընդլայնման օբյեկտ կամ ֆունկցիայի ընդունող, ինչը նպաստում է հստակությանը և խուսափում է անվանման կոնֆլիկտներից։