零基础 go - 34(函数 - 匿名函数)

4 阅读1分钟
  • 匿名函数就是没有名字的函数,通常用于一次性使用的场景,比如回调函数、立即执行函数表达式(IIFE)等。

  • 匿名函数可以是普通函数,也可以是箭头函数。

  • 匿名函数也可以赋值给一个变量,这样就可以通过变量名来调用这个函数了。(可实现多次调用)

一、使用方式

使用方式1:定义完匿名函数时就调用

package main

import "fmt"

func main() {
    res := func(x int)int {
        fmt.Println("Hello, World!")
        return x++
    }(10) // 定义完匿名函数时就调用,并传入参数10
    
    fmt.Println("res:", res)
}

使用方式2:将匿名函数赋值给一个变量,通过变量来调用匿名函数

package main

import "fmt"

func main() {
    add := func(x, y int) int { // 将匿名函数赋值给变量add
        return x + y
    }
    res := add(3, 5) // 通过变量add来调用匿名函数
    fmt.Println("res:", res)
}

使用方式3: 全局匿名函数

package main

import "fmt"

var globalFunc = func() { // 定义一个全局匿名函数 ---- (当前包才能用)
    fmt.Println("This is a global anonymous function.")
}

var Cal = func(x int, y int) int { // 定义一个全局匿名函数----(当前包和其他包都能用)
    fmt.Println("This is a global anonymous function.")
    return x + y
}

func main() {
    globalFunc() // 调用全局匿名函数
    res := Cal(10, 20) // 调用全局匿名函数
    fmt.Println("res:", res)
}