首页 > 文章列表 > Golang 匿名函数可以返回多个值吗?

Golang 匿名函数可以返回多个值吗?

匿名函数 golang
128 2024-04-23

是的,Go 语言中的匿名函数可以返回多个值。语法:func(arg1, arg2, ..., argN) (ret1, ret2, ..., retM) { // 函数体 }。使用方法:使用 := 操作符接收返回值;使用 return 关键字返回多个值。

Golang 匿名函数可以返回多个值吗?

Go 语言中匿名函数是否可以返回多个值?

简答:

是的,Go 语言中的匿名函数可以返回多个值。

语法:

func(arg1, arg2, ..., argN) (ret1, ret2, ..., retM) {
    // 函数体
}

其中:

  • arg1, arg2, ..., argN 为匿名函数的参数列表。
  • ret1, ret2, ..., retM 为匿名函数的返回值列表。

使用方法:

  1. 使用 := 操作符接收返回值:
values := func(x, y int) (int, int) {
    return x + y, x - y
}(10, 5)

上述代码中,匿名函数接收两个整数参数 xy,并返回它们的和和差。:= 操作符将匿名函数的返回值一个接一个地分配给 values 变量。

  1. 使用 return 关键字返回多个值:
func(x int) (int, int) {
    return x + 1, x - 1
}

实战案例:

考虑如下代码:

func main() {
    // 定义一个接收整数并返回其加法和减法结果的匿名函数
    addSub := func(x int) (int, int) {
        return x + 1, x - 1
    }

    // 调用匿名函数并分别将加法和减法结果存储在变量中
    sum, diff := addSub(10)

    fmt.Println("Add:", sum)
    fmt.Println("Sub:", diff)
}

输出:

Add: 11
Sub: 9