Sobes.tech
Middle

Kotlin'de tailrec (kuyrukla özyineleme) fonksiyonu nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de tailrec ile fonksiyon, fonksiyon gövdesinde en son işlem olan özyinelemeli bir fonksiyondur. Bu, derleyicinin çağrıları optimize etmesine olanak tanır ve özyinelemeyi döngüye dönüştürerek yığın taşmasını önler.

Böyle bir fonksiyonu belirtmek için tailrec modifikatorü kullanılır. Eğer fonksiyon tailrec gereksinimlerini karşılamıyorsa, derleyici hata verir.

Faktöriyel hesaplamak için tailrec örneği:

tailrec fun factorial(n: Int, acc: Int = 1): Int {
    return if (n <= 1) acc else factorial(n - 1, acc * n)
}

Burada, factorial(n - 1, acc * n) özyinelemeli çağrı fonksiyonun sonunda yer alır, bu da çağrıların optimize edilmesini sağlar.