Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Go语言 匿名函数

Go语言匿名函数详解

作者:会编程的土豆

本文系统讲解Go语言中匿名函数的定义、调用及其核心应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

匿名函数是没有名字的函数,可以像普通变量一样赋值、传参和调用。在 Go 中,匿名函数和闭包密切相关,是函数式编程的重要手段。

一、匿名函数定义与调用

最简单的匿名函数:

package main

import "fmt"

func main() {
    // 定义并立即调用匿名函数
    func() {
        fmt.Println("Hello, Go!")
    }()

    // 定义匿名函数并赋值给变量
    f := func(a, b int) int {
        return a + b
    }

    fmt.Println(f(3, 5)) // 输出 8
}

说明:

二、匿名函数作为闭包

匿名函数可以捕获外部变量,从而形成闭包:

func main() {
    sum := 0
    add := func(x int) int {
        sum += x
        return sum
    }

    fmt.Println(add(1)) // 1
    fmt.Println(add(2)) // 3
    fmt.Println(add(3)) // 6
}

说明:

三、匿名函数作为参数

匿名函数常用于回调或高阶函数:

func callback(f func(int) int) {
    fmt.Println(f(10))
}

func main() {
    y := 5
    callback(func(x int) int {
        return x + y
    }) // 输出 15
}

说明:

四、匿名函数作为返回值

匿名函数可以返回给调用方,常用于函数工厂或生成累加器:

func adder() func(int) int {
    sum := 0
    return func(x int) int {
        sum += x
        return sum
    }
}

func main() {
    f := adder()
    fmt.Println(f(1)) // 1
    fmt.Println(f(2)) // 3
    fmt.Println(f(3)) // 6
}

说明:

五、匿名函数的应用场景

  1. 临时函数:只使用一次,不需要命名。
  2. 闭包:累加器、延迟计算、状态保持。
  3. 回调函数:事件处理、排序、过滤。
  4. 工厂函数:返回自定义功能函数。

六、总结

到此这篇关于Go语言匿名函数详解的文章就介绍到这了,更多相关Go语言 匿名函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文