GO语言匿名函数的几种使用方式

Written by

in

文章目录
  • 在Go语言中,匿名函数(Anonymous Function)是一种没有名称的函数定义方式,可以直接定义并使用,或者赋值给变量。Go语言中的匿名函数也被称为函数字面量(Function Literal)。
  • func(参数列表) 返回值类型 { // 函数体 }
  • 目录
    • 匿名函数说明
    • 基本语法
    • 匿名函数的几种使用方式
      • 直接定义并调用(立即执行函数)
      • 赋值给变量,后续调用
      • 作为函数参数(回调函数)

    在Go语言中,匿名函数(Anonymous Function)是一种没有名称的函数定义方式,可以直接定义并使用,或者赋值给变量。Go语言中的匿名函数也被称为函数字面量(Function Literal)。

    func(参数列表) 返回值类型 {
        // 函数体
    }
    

    这种调用方式和直接把功能写在函数中的区别:
    1、将无法复用功能块独立出来,一个功能使用一段代码,结果清晰。
    2、匿名函数中定义的变量有自己的空间,不会污染外部的变量。

    package main
    
    import "fmt"
    
    func main() {
        // 定义并立即执行
        func() {
            fmt.Println("这是一个匿名函数")
        }()  // 注意这里的括号表示立即调用
    
        // 带参数的立即执行匿名函数
        func(msg string) {
            fmt.Println("收到消息:", msg)
        }("Hello, Go!")
    }
    

    这里将匿名函数赋值给函数指针变量add,后续直接调用函数指针变量add就相当于调用匿名函数。

    package main
    
    import "fmt"
    
    func main() {
        // 将匿名函数赋值给变量
        add := func(a, b int) int {
            return a + b
        }
    
        result := add(3, 5)
        fmt.Println("3 + 5 =", result)  // 输出: 3 + 5 = 8
    }
    

    package main
    
    import "fmt"
    
    // 接受函数作为参数的函数
    func calculate(a, b int, op func(int, int) int) int {
        return op(a, b)
    }
    
    func main() {
        sum := calculate(10, 20, func(x, y int) int {
            return x + y
        })
        
        product := calculate(10, 20, func(x, y int) int {
            return x * y
        })
        
        fmt.Println("Sum:", sum)       // 输出: Sum: 30
        fmt.Println("Product:", product) // 输出: Product: 200
    }
    

    下面这个用法对于新手可能难以理解,博主来仔细拆解一下。
    首先是函数的定义:

    再来看看函数的调用和匿名函数的实现:

    到此这篇关于GO语言匿名函数的几种使用方式的文章就介绍到这了,更多相关GO语言匿名函数内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 

    您可能感兴趣的文章:

    • 如何在Go语言中灵活运用匿名函数和闭包
    • 一文带你了解Go语言中的匿名函数
    • GO语言不固定参数函数与匿名函数的使用
    • Go语言中init函数与匿名函数使用浅析
    • Go语言func匿名函数闭包示例详解
    • go语言中匿名函数的作用域陷阱详解
    • go语言匿名函数的使用

    站内搜索