Junior — Middle
Kotlin'de iç mimari seviyesinde fonksiyon genişletme mekanizması nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de fonksiyon genişletme mekanizması JVM seviyesinde değil, derleyici seviyesindedir. Derleme sırasında, genişletilen fonksiyon statik bir metoda dönüştürülür ve ilk parametre olarak genişletmenin çağrıldığı nesne alınır. Bu, genişletmelerin orijinal sınıfı değiştirmediği ve sınıfın bytecode'una metod eklemediği, sadece nokta ile çağrı sözdizimi kullanan dış fonksiyonlar oluşturduğu anlamına gelir.
Örneğin, String sınıfı için bir genişletme:
fun String.lastChar(): Char = this.get(this.length - 1)
val c = "Kotlin".lastChar() // genişletme çağrısı
Derleyici yaklaşık olarak şu şekilde bir statik metod oluşturur:
public static char lastChar(String receiver) {
return receiver.charAt(receiver.length() - 1);
}
Bu şekilde, genişletmeler, sınıf yapılarını değiştirmeyen, dış fonksiyonları çağırmak için kullanışlı bir sözdizimi şeklidir.