Middle
Mi az a tailrec (végrehívási) rekurzióval rendelkező függvény Kotlinban?
sobes.tech MI
Válasz az MI-től
A tailrec rekurzió Kotlinban egy olyan rekurzív függvény, ahol a rekurzív hívás a függvény testében az utolsó művelet. Ez lehetővé teszi a fordítónak, hogy optimalizálja a hívásokat, és ciklussá alakítsa a rekurziót, ezáltal megakadályozva a verem túlcsordulását.
Egy ilyen függvény jelöléséhez a tailrec módosítót használjuk. Ha a függvény nem felel meg a tailrec követelményeinek, a fordító hibát jelez.
Példa a tailrec rekurzióra a faktoriális számításához:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Ebben a példában a factorial(n - 1, acc * n) rekurzív hívás a függvény végén van, ami lehetővé teszi a hívás optimalizálását.