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