Golang匿名函数
什么是匿名函数
匿名函数就是没有名字的函数,也称为函数字面量(function literal)。它可以在代码中直接定义和使用,无需事先声明函数名。
基本语法
func(参数列表) 返回值类型 {
函数体
}使用方法
1.定义后立即调用
package main
import "fmt"
func main() {
// 定义并立即执行
func() {
fmt.Println("这是一个匿名函数")
}()
// 带参数和返回值
result := func(a, b int) int {
return a + b
}(3, 5)
fmt.Println("结果:", result) // 输出: 结果: 8
}2.赋值给变量
package main
import "fmt"
func main() {
// 将匿名函数赋值给变量
add := func(a, b int) int {
return a + b
}
// 通过变量调用
fmt.Println(add(10, 20)) // 输出: 30
// 变量可以重新赋值
add = func(a, b int) int {
return a * b
}
fmt.Println(add(10, 20)) // 输出: 200
}3.作为函数参数
package main
import "fmt"
// 接收函数作为参数
func operate(a, b int, op func(int, int) int) int {
return op(a, b)
}
func main() {
// 传入匿名函数
result := operate(10, 5, func(x, y int) int {
return x - y
})
fmt.Println("结果:", result) // 输出: 结果: 5
}4.作为返回值
package main
import "fmt"
// 返回一个函数
func getOperator(op string) func(int, int) int {
switch op {
case "+":
return func(a, b int) int {
return a + b
}
case "*":
return func(a, b int) int {
return a * b
}
default:
return func(a, b int) int {
return 0
}
}
}
func main() {
addFunc := getOperator("+")
fmt.Println(addFunc(3, 4)) // 输出: 7
mulFunc := getOperator("*")
fmt.Println(mulFunc(3, 4)) // 输出: 12
}
评论 (0)