闭包(Closure)是一种函数值,它可以引用在其外部定义的变量。闭包允许这些变量保持在函数内部,而不是被每次调用时重新创建。闭包的作用主要体现在以下几个方面
func counter() func() int {
count := 0
return func() int {
count++
return count
}
}
// 使用闭包创建一个计数器
c := counter()
fmt.Println(c()) // 输出: 1
fmt.Println(c()) // 输出: 2
func lazyAdd(a, b int) func() int {
result := 0
return func() int {
if result == 0 {
result = a + b
}
return result
}
}
// 使用闭包实现懒加载
add := lazyAdd(3, 4)
fmt.Println(add()) // 输出: 7
func multiplyBy(factor int) func(int) int {
return func(x int) int {
return x * factor
}
}
// 使用闭包创建不同倍数的乘法函数
multiplyBy2 := multiplyBy(2)
multiplyBy3 := multiplyBy(3)
fmt.Println(multiplyBy2(5)) // 输出: 10
fmt.Println(multiplyBy3(5)) // 输出: 15
原文地址:https://blog.csdn.net/weixin_44879611/article/details/135723992
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_59602.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!