匿名函数与闭包
匿名函数没有名字,可以直接定义和调用,也可以作为变量或参数传递。闭包是匿名函数捕获并持有外部变量的特性。
1. 匿名函数定义与调用
func() {
fmt.Println("Hello, 匿名函数")
}()
`
将匿名函数赋值给变量:
f := func(name string) {
fmt.Println("Hello,", name)
}
f("Go")
2. 闭包示例
闭包可以访问和修改外部变量:
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
pos := adder()
fmt.Println(pos(1)) // 输出:1
fmt.Println(pos(2)) // 输出:3
fmt.Println(pos(3)) // 输出:6
每次调用闭包都会累积 sum,体现了状态的保持。
匿名函数和闭包是 Go 函数式编程的重要工具,提升代码灵活性和表达力。
相关内容
- 什么是 Go Go 是由 Google 开发的一种开源编程语言,以简洁、高效、并发编程支持强著称,广泛应用于后端开发、云原生和微服务等领域。
- Go 的特点与适用场景 Go 语言以高并发、快速编译、简洁语法和强大标准库著称,适用于构建高性能网络服务、微服务架构和云原生应用。
- 安装 Go(Windows/Linux/macOS) 本节介绍如何在 Windows、Linux 和 macOS 上安装 Go 语言开发环境,包含安装步骤、验证方法及常见注意事项。
- 设置环境变量 本节介绍如何为 Go 语言配置环境变量,包括 GOPATH、GOROOT、PATH 等关键变量,适用于 Windows、Linux 和 macOS 系统。
- 第一个 Go 程序(Hello World) 本节将带你编写第一个 Go 程序“Hello, World”,帮助你快速了解 Go 的基础语法和程序结构。
- Go Modules 简介 本节介绍 Go Modules 的基本概念与用法,它是 Go 官方推荐的依赖管理方式,支持版本控制、依赖隔离和构建一致性。