Kotlin dilinde 'this' anahtar kelimesinin kullanımını açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de this, mevcut sınıf örneğine atıfta bulunur. Kullanımı bağlama bağlıdır:
-
Sınıf yöntemi içinde:
this, yöntemin çağrıldığı örneğe atıfta bulunur.class MyClass { var value: Int = 0 fun setValue(value: Int) { // this.value, sınıfın özelliğine erişmek için kullanılır // ve value, yöntemin parametresidir this.value = value } } -
Extension fonksiyonu veya özelliği içinde:
this, extension uygulanan nesneye atıfta bulunur.fun String.printLength() { // this burada, extension fonksiyonunun çağrıldığı String örneğidir println("Dizenin uzunluğu: ${this.length}") } fun main() { "Merhaba".printLength() // "Dizenin uzunluğu: 7" yazdırır } -
Receptor ile fonksiyon literal'ları içinde:
this, literal'ın alıcısına atıfta bulunur.fun buildString(builderAction: StringBuilder.() -> Unit): String { val sb = StringBuilder() // builderAction içinde, this, sb'ye (StringBuilder örneği) atıfta bulunur sb.builderAction() return sb.toString() } val myString = buildString { // this burada, StringBuilder'dır append("Merhaba, ") append("Dünya!") } -
Nitelikli
this(birden fazla alıcı varsa): Çakışmayı önlemek için kullanılır, örneğin iç içe yapılar veya farklı alıcılar içeren fonksiyon literal'ları durumunda. Sözdizimi%label@this, burada%label, bağlamla ilişkili etikettir.class Outer { inner class Inner { fun printThis() { // this, Inner örneğine atıfta bulunur println("Inner this: ${this}") // Outer@this, Outer örneğine atıfta bulunur println("Outer this: ${this@Outer}") } } fun createInner() = Inner() } fun main() { Outer().createInner().printThis() }
Genel olarak, Kotlin'de this, mevcut bağlama açık erişim sağlar; bu, sınıf örneği, extension nesnesi veya fonksiyon literal alıcısı olabilir, ve açıklığı artırır, isim çakışmalarını önler.