# Go 語言函數閉包
Go 語言支持匿名函數,可作為閉包。匿名函數是一個"內聯"語句或表達式。匿名函數的優越性在于可以直接使用函數內的變量,不必申明。
以下實例中,我們創建了函數 getSequence() ,返回另外一個函數。該函數的目的是在閉包中遞增 i 變量,代碼如下:
```
package main
import "fmt"
func getSequence() func() int {
i:=0
return func() int {
i+=1
return i
}
}
func main(){
/* nextNumber 為一個函數,函數 i 為 0 */
nextNumber := getSequence()
/* 調用 nextNumber 函數,i 變量自增 1 并返回 */
fmt.Println(nextNumber())
fmt.Println(nextNumber())
fmt.Println(nextNumber())
/* 創建新的函數 nextNumber1,并查看結果 */
nextNumber1 := getSequence()
fmt.Println(nextNumber1())
fmt.Println(nextNumber1())
}
```
以上代碼執行結果為:
```
1
2
3
1
2
```
- Go 語言簡介
- Go 語言環境安裝
- Go 語言結構
- Go 語言基礎語法
- Go 語言數據類型
- Go 語言變量
- Go 語言常量
- Go 語言運算符
- Go 語言條件語句
- Go 語言 if 語句
- Go 語言 if...else 語句
- Go 語言 if 語句嵌套
- Go 語言 switch 語句
- Go 語言 select 語句
- Go 語言循環語句
- Go 語言 for 循環
- Go 語言循環嵌套
- Go 語言 break 語句
- Go 語言 continue 語句
- Go 語言 goto 語句
- Go 語言函數
- Go 語言函數值傳遞值
- Go 語言函數引用傳遞值
- Go 語言函數作為值
- Go 語言函數閉包
- Go 語言函數方法
- Go 語言變量作用域
- Go 語言數組
- Go 語言多維數組
- Go 語言向函數傳遞數組
- Go 語言指針
- Go 語言指針數組
- Go 語言指向指針的指針
- Go 語言指針作為函數參數
- Go 語言結構體
- Go 語言切片(Slice)
- Go 語言范圍(Range)
- Go 語言Map(集合)
- Go 語言遞歸函數
- Go 語言類型轉換
- Go 語言接口
- Go 錯誤處理
- Go 語言開發工具