Kotlin dilində 'this' açar sözünün istifadəsini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də this cari sinif nümunəsinə istinad edir. Onun istifadəsi kontekstdən asılıdır:
-
Sinfin metodunda:
thisçağırılan metodun hansı nümunəyə aid olduğunu göstərir.class MyClass { var value: Int = 0 fun setValue(value: Int) { // this.value sinifin xüsusiyyətinə daxil olmaq üçün istifadə olunur // və value metod parametridir this.value = value } } -
Extension funksiyası və ya xüsusiyyəti daxilində:
thistətbiq olunan obyektə istinad edir.fun String.printLength() { // this burada extension funksiyasının çağrıldığı String nümunəsidir println("Sətirin uzunluğu: ${this.length}") } fun main() { "Salam".printLength() // "Sətirin uzunluğu: 5" çap edir } -
Receptor ilə funksiyanın literalında:
thisliteralın qəbulçusuna istinad edir.fun buildString(builderAction: StringBuilder.() -> Unit): String { val sb = StringBuilder() // builderAction daxilində, this sb (StringBuilder nümunəsi) istinad edir sb.builderAction() return sb.toString() } val myString = buildString { // this burada StringBuilder append("Salam, ") append("Dünya!") } -
Kvalifikasiya olunmuş
this(bir neçə qəbulçu varsa): Bu, iç-içə strukturlar və müxtəlif qəbulçular ilə, çoxsaylı kontekstlər arasında qarışıqlığı aradan qaldırmaq üçün istifadə olunur. Sintaksis%label@this, burada%labelkontekstlə əlaqəli etiketdir.class Outer { inner class Inner { fun printThis() { // this Inner nümunəsinə istinad edir println("Inner this: ${this}") // Outer@this Outer nümunəsinə istinad edir println("Outer this: ${this@Outer}") } } fun createInner() = Inner() } fun main() { Outer().createInner().printThis() }
Ümumiyyətlə, Kotlin-də this cari kontekstə açıq giriş təmin edir, bu, sinif nümunəsi, extension obyekti və ya funksiya literal qəbulçusu ola bilər, və aydınlığı artırır, ad konfliktlərinin qarşısını alır.