遞歸,就是在運作的過程中調用自己。
既然說到遞歸,那我就得先說一下在JAVA語言中的遞歸,
遞歸的基本思想就是
“自己調用自己”,一個使用遞歸技術的方法會直接或間接的調用自己
遞歸構造包括兩個部分:
定義遞歸頭。什麼時候不調用自身方法,如果沒有頭,将陷入死循環
遞歸體。什麼時候需要調用自身方法,遞歸一般都是從案例中提現出來的,我們可以實作一下看看

遞歸算法代碼顯得很簡潔,但遞歸算法解題的運作效率較低。是以不提倡用遞歸設計程式。
在遞歸調用的過程中系統為每一層的傳回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等,是以一般不提倡用遞歸算法設計程式。
在做遞歸算法的時候,一定把握出口,也就是做遞歸算法必須要有一個明确的遞歸結束條件。這一點是非常重要的。其實這個出口就是一個條件,當滿足了這個條件的時候我們就不再遞歸了。
遞歸算法會很容易造成記憶體占用過大的情況,慎用!
下面我們會所一下這個Go語言中的遞歸算法吧。
文法格式:
func recursion() {
recursion() /* 函數調用自身 */
}
func main() {
recursion()
}
Go 語言支援遞歸。但我們在使用遞歸時,開發者需要設定退出條件,否則遞歸将陷入無限循環中。
遞歸函數對于解決數學上的問題是非常有用的,就像計算階乘,生成斐波那契數列等。
我們用Go語言實作階乘試試
階乘的結果
斐波那契數列
Go 語言的遞歸函數實作斐波那契數列:
執行個體結果如下
以上就是Go語言遞歸函數的使用