共計 646 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Go 語言中,閉包函數是指一個函數可以訪問到其外部作用域中的變量。閉包函數可以將變量作為參數或返回值,用于實現某些特定的功能。
下面是一個簡單的閉包函數的例子:
func main() {// 定義匿名函數并賦值給變量 add
add := func(x, y int) int {return x + y
}
// 調用閉包函數
result := add(3, 5)
fmt.Println(result) // 輸出:8
}
在上面的例子中,我們定義了一個匿名函數并將其賦值給變量 add
,該函數可以訪問到其外部作用域中的變量x
和y
,并返回它們的和。我們通過調用 add
函數,傳入參數 3 和 5,得到結果 8。
閉包函數還可以用于實現函數工廠,即返回一個函數的函數。下面是一個示例:
func adder() func(int) int {sum := 0
return func(x int) int {
sum += x
return sum
}
}
func main() {// 調用函數工廠,返回一個閉包函數
a := adder()
// 調用閉包函數
fmt.Println(a(1)) // 輸出:1
fmt.Println(a(2)) // 輸出:3
fmt.Println(a(3)) // 輸出:6
}
在上面的例子中,我們定義了一個 adder
函數,它返回一個閉包函數。閉包函數中的變量 sum
會在每次調用時保留其狀態。我們通過調用 adder
函數得到一個閉包函數 a
,然后分別調用a
函數并傳入不同的參數,最后輸出結果。可以看到,每次調用 a
函數時,變量 sum
會保持其之前的累加結果。
丸趣 TV 網 – 提供最優質的資源集合!
正文完