2011-07-26 64 views
3

我想弄清楚你稱之爲引用自身的函數。這是否被稱爲遞歸?或者它只是一個自我引用功能?你叫什麼調用自己的函數(這叫做遞歸)?

+0

如果它從未*調用*本身,那麼我會認爲它只是愚蠢的代碼;-)否則,請參閱答案。遞歸函數是*自己調用的函數。直接遞歸是調用*本身的*行爲。因此,如果沒有任何東西*被稱爲*(但函數,稱爲匿名函數,仍然有其自身的參考),那麼... ;-) – 2011-07-26 18:11:42

回答

2

正如您懷疑的那樣,調用自身的函數稱爲「遞歸」。

0

遞歸或自遞歸是我通常所說的。只要小心一點,這樣你就不會被困在一個叫自己的循環中,最終吹出堆棧。

還要記住變量的範圍。如果需要在所有遞歸級別共享變量(或將它們聲明在函數之外),則聲明變量爲靜態變量。如果需要從一個級別傳遞到下一個級別的特定信息,則將變量傳遞給該函數。最後,在函數中使用局部變量來保持當前遞歸級別的狀態。局部變量將爲您調用的每個遞歸級別在堆棧上創建一個副本,然後回退到解開每個遞歸的先前值。

+0

我認爲OP只是釣魚作業/在線測試問題答案: ) –