CodeBlanks Logo Icon CodeBlanks

inline

inline ile performans optimizasyonu öğrenirsin.

inline

inline anahtar kelimesi, fonksiyonun çağrıldığı yere doğrudan gömülmesini sağlar. Higher-order fonksiyonlarda lambda oluşturma yükünü azaltır.

Örnek: inline fun repeatN(times: Int, action: (Int) -> Unit) { for (i in 1..times) action(i) }. repeatN(3) { println("Tekrar $it") } çağrısı üç kez yazdırır. inline sayesinde lambda nesnesi oluşturulmaz; kod çağrı noktasına gömülür. Bu, performans için yararlıdır. Ama her inline fonksiyon kod boyutunu artırabilir; küçük fonksiyonlarda kullanılır.

repeatN fonksiyonu

Bir inline higher-order fonksiyon, lambda'yı çağrı noktasına gömer. action(i) çağrısı derleme zamanında genişletilir.

Örnek: inline fun repeatN(times: Int, action: (Int) -> Unit) { for (i in 1..times) action(i) }. repeatN(3) { println("Tekrar $it") } çağrısı Tekrar 1 Tekrar 2 Tekrar 3 yazdırır. it lambda'nın tek parametresidir. inline fonksiyonlar özellikle koleksiyon metotlarında yaygın kullanılır; forEach, map, filter standart kütüphanede inline'dır.

Uygulama repeatN inline fonksiyonu

inline fun repeatN(times: Int, action: (Int) -> Unit) fonksiyonunu tanımla; gövdesi for (i in 1..times) action(i) yapsın. main içinde repeatN(3) { println("Tekrar $it") } çağrısı yapsın.

Başlangıç kodu

Main.kt
// repeatN inline fonksiyon tanımı
// times ve action alır, for ile döner
// main'de üç kez çağır

Örnek çözüm

Main.kt
inline fun repeatN(times: Int, action: (Int) -> Unit) {
    for (i in 1..times) action(i)
}

fun main() {
    repeatN(3) { println("Tekrar $it") }
}

Beklenen çıktı

Tekrar 1
Tekrar 2
Tekrar 3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>inline</code> anahtar kelimesi ne sağlar?

  • Fonksiyonun gizlenmesini
  • Fonksiyonun sabitlenmesini
  • Fonksiyonun özyinelemesini
  • Fonksiyon gövdesinin çağrı noktasına gömülmesini Doğru cevap

Açıklama: inline fonksiyon gövdesini çağrı noktasına gömer.

2 inline parçalarını eşle

Kavram Anlamı
inline fun repeatN inline imza
action: (Int) -> Unit Fonksiyon parametresi
for (i in 1..times) Döngü
action(i) Lambda çağrısı

3 inline fonksiyon tanımını tamamla

Soru
inline ____ repeatN(times: Int, action: (Int) -> Unit) {
    for (i in 1..times) action(i)
}
Cevap
inline fun repeatN(times: Int, action: (Int) -> Unit) {
    for (i in 1..times) action(i)
}

Açıklama: inline fun repeatN biçiminde yazılır.

Orta seviye bölümündeki tüm dersler