Sobes.tech
Middle

Функсияи tailrec (рекурсияи охирӣ) дар Kotlin чист?

sobes.tech AI

Ҷавоб аз AI

Функсияи бо рекурсияи tailrec дар Kotlin функсияи рекурсивӣ аст, ки дар он даъвати рекурсивӣ охирин амал дар бадани функсия мебошад. Ин имкон медиҳад, ки компилятор даъватҳоро оптимизатсия кунад, рекурсияро ба цикл табдил диҳад, ки аз фарсудашавии стек пешгирӣ мекунад.

Барои нишон додани чунин функсия, модификатори tailrec истифода мешавад. Агар функсия талаботи tailrec-ро иҷро накунад, компилятор хато медиҳад.

Масали tailrec барои ҳисоб кардани факториал:

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

Ин ҷо, даъвати рекурсивӣ factorial(n - 1, acc * n) охирин дар функсия аст, ки имкон медиҳад, даъват оптимизатсия шавад.