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.