Sobes.tech
Middle

Kotlin-də tailrec (quyruqrekursiya) funksiyası nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də tailrec ilə funksiya, funksiyanın bədənində rekursiv çağırışın son əməliyyat olduğu rekursiv funksiyadır. Bu, tərtibçinin çağırışları optimallaşdırmasına imkan verir və rekursiyanı dövrə çevirərək yığın daşmasını qarşısını alır.

Belə bir funksiyanı göstərmək üçün tailrec modifierindən istifadə olunur. Əgər funksiya tailrec tələblərinə cavab vermirsə, tərtibçi səhv verəcək.

Faktorialın hesablanması üçün tailrec nümunəsi:

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) rekursiv çağırış funksiyanın sonunda yerləşir və çağırışların optimallaşdırılmasına imkan verir.