Go 语言支持闭包,它是一个函数和与其相关的引用环境组合的实体。它可以访问其包含函数中定义的变量,即使在其包含函数已经结束运行后。在 Go 中,闭包可以通过将函数作为参数传递给另一个函数来实现。
举个例子:
package main
import "fmt"
func outerFunc(x int) func(int) int {
return func(y int) int {
return x + y
}
}
func main() {
closure := outerFunc(10)
result := closure(20)
fmt.Println(result) // Output: 30
}
在上面的代码中,函数 outerFunc 返回一个内部函数,该内部函数可以访问 outerFunc 中的变量 x。我们通过调用 outerFunc 并将结果分配给变量 closure 来实现闭包。