Sobes.tech
Middle

Kotlin'da tailrec (dahldan takrorlanadigan) funktsiya nima?

sobes.tech AI

AIdan javob

Kotlin'da tailrec bilan funksya, funksiyaning tanasida rekursiv chaqiriq oxirgi operatsiya bo'lgan rekursiv funksiyadir. Bu kompilyatorga chaqiriqlarni optimallashtirishga imkon beradi va rekursiyani siklga aylantiradi, bu esa stek to'lib ketishini oldini oladi.

Bunday funksiyani belgilash uchun tailrec modifikatori ishlatiladi. Agar funksiya tailrec talablariga javob bermasa, kompilyator xato chiqaradi.

Faktorialni hisoblash uchun tailrec misoli:

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

Bu yerda, factorial(n - 1, acc * n) rekursiv chaqiriq funksiyaning oxirida joylashgan, bu chaqiriqlarni optimallashtirish imkonini beradi.