Middle
Τι είναι μια λειτουργία με ουρά αναδρομής (tailrec) στο Kotlin;
sobes.tech AI
Απάντηση από AI
Η λειτουργία με tailrec αναδρομή (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) είναι η τελευταία στη λειτουργία, επιτρέποντας την βελτιστοποίηση της κλήσης.