遞迴

請注意,使用遞迴會對程式碼產生嚴重影響,因為每個遞迴函式呼叫都將附加到堆疊。如果呼叫太多,則可能導致 StackOverflow 異常。大多數自然遞迴函式可以寫成 forwhileforeach 迴圈結構,雖然看起來不那麼豪華聰明會更有效率。

總是三思而後行 - 仔細使用遞迴 - 知道你為什麼使用它:

  • 當你知道遞迴呼叫的數量不是過多時,應該使用遞迴 **
    • 過多的手段,取決於可用的記憶體量
  • 使用遞迴是因為它更清晰,更清晰的程式碼版本,它比迭代或基於迴圈的函式更具可讀性。通常情況就是這樣,因為它提供了更清晰,更緊湊的程式碼(也就是更少的程式碼行)。
    • 但請注意,效率可能會低一些! 例如,在 Fibonacci 遞迴中,為了計算序列中的第 n 個數,計算時間將呈指數增長!

如果你想了解更多理論,請閱讀: