Go 遞迴函式
遞迴函式
Go 語言支援遞迴函式。如果一個函式呼叫自身並達到停止條件,則該函式是遞迴的。
在下面的示例中,testcount()
是一個呼叫自身的函式。我們使用變數 x
作為資料,每次遞迴時都會加 1(x + 1
)。當 x
變數等於 11(x == 11
)時,遞迴停止。
示例
package main
import ("fmt")
func testcount(x int) int {
if x == 11 {
return 0
}
fmt.Println(x)
return testcount(x + 1)
}
func main(){
testcount(1)
}
結果
1
2
3
4
5
6
7
8
9
10
遞迴是一個常見的數學和程式設計概念。它的好處在於,你可以迴圈遍歷資料以獲得結果。
開發人員在使用遞迴函式時應謹慎,因為很容易陷入編寫一個永不終止的函式,或者一個使用過量記憶體或處理器資源的函式。然而,如果編寫得當,遞迴可以是一種非常高效且在數學上優雅的程式設計方法。
在下面的示例中,factorial_recursion()
是一個呼叫自身的函式。我們使用變數 x
作為資料,每次遞迴時都會減 1(-1
)。當條件不再大於 0(即當它等於 0 時)時,遞迴停止。
示例
package main
import ("fmt")
func factorial_recursion(x float64) (y float64) {
if x > 0 {
y = x * factorial_recursion(x-1)
} else {
y = 1
}
return
}
func main() {
fmt.Println(factorial_recursion(4))
}
結果
24
對於新的開發者來說,可能需要一些時間來弄清楚這究竟是如何工作的,最好的方法是透過測試和修改它。