Sobes.tech
Middle

Kotlin-ში tailrec (კუდიანი რეკურსია) ფუნქცია რა არის?

sobes.tech AI

პასუხი AI-სგან

Kotlin-ში tailrec ფუნქცია არის რეკურსიული ფუნქცია, სადაც რეკურსიული ზარი არის ბოლო ოპერაცია ფუნქციის სხეულში. ეს საშუალებას აძლევს კომპილატორს ოპტიმიზიროს ზარები, გარდაქმნას რეკურსია ციკლში, რაც თავიდან აცილებს სტეკის გადატვირთვას.

ასეთი ფუნქციის ნიშნულისთვის გამოიყენება 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) არის ბოლო ფუნქციაში, რაც საშუალებას აძლევს ზარის ოპტიმიზაციას.