闭包是在嵌套函数中定义的函数,可以访问嵌套函数作用域中的变量,包括返回值已返回后的变量。它们用于创建灵活可重用的代码,例如生成斐波那契数列的项:定义一个生成斐波那契项的闭包函数。闭包函数会捕获两个变量,分别保存斐波那契数列的前两个项。调用闭包函数,依次计算并返回新的斐波那契项。闭包函数可以随着时间改变被捕获变量的值,从而生成斐波那契数列的后续项。
Go 语言函数中的闭包
什么是闭包?
闭包是在嵌套函数内部定义的函数。它可以访问嵌套函数的作用域中的变量,即使嵌套函数已经返回。
代码示例:
func outer(multiplier int) func(x int) int { return func(x int) int { return multiplier * x } } func main() { doubler := outer(2) result := doubler(5) fmt.Println(result) // 输出:10 }