Go语言中的闭包、数组与切片
1. 闭包的概念与应用
1.1 闭包的定义
闭包(Closure),也被称为Lambda函数,它可以引用其周围函数中定义的变量。闭包是一种捕获外部状态的函数,继承了其声明所在函数的作用域,这些外部状态(变量)在周围函数和闭包之间共享,只要这些变量可访问,它们就会一直存在。
1.2 闭包的应用示例
1.2.1 函数返回另一个函数
以下是两个函数 Add2 和 Adder 的示例,它们返回另一个Lambda函数:
package main
import "fmt"
func main() {
// 创建Add2函数并调用
p2 := Add2()
fmt.Printf("Call Add2 for 3 gives: %v\n", p2(3))
// 创建特殊的Adder函数
TwoAdder := Adder(2)
fmt.Printf("The result is: %v\n", TwoAdder(3))
}
func Add2() (func(b int) int) {
return func(b int) int {
return b + 2
}
}
func Adder(a int) (func(b int) int) {
return func(b int) int {
return a + b
}
}
输
超级会员免费看
订阅专栏 解锁全文
4904

被折叠的 条评论
为什么被折叠?



