選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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
自己動手試一試 »

對於新的開發者來說,可能需要一些時間來弄清楚這究竟是如何工作的,最好的方法是透過測試和修改它。


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援