Go-函数-匿名函数

2023-04-20 18:42:06 浏览数 (1)

在 Go 语言中,函数可以是匿名的,也就是说函数可以在定义时不给它们命名。匿名函数可以在其他函数内部定义,并且可以被赋值给变量或作为参数传递给其他函数。匿名函数通常用于需要在程序中定义临时函数的情况。

定义匿名函数

在 Go 语言中,可以使用关键字 func 定义匿名函数,然后可以将其分配给变量或直接调用。匿名函数的语法如下:

代码语言:javascript复制
func(parameters) return_type {
    // function body
}

其中 parameters 表示函数参数,return_type 表示函数返回类型,函数体可以包含任何合法的 Go 代码。例如:

代码语言:javascript复制
func(x, y int) int {
    return x   y
}

上面的例子定义了一个匿名函数,它接受两个整数参数并返回它们的和。

匿名函数也可以被赋值给变量:

代码语言:javascript复制
add := func(x, y int) int {
    return x   y
}

sum := add(1, 2)
fmt.Println(sum) // 输出:3

在上面的例子中,匿名函数被赋值给变量 add,然后可以像普通函数一样调用。

匿名函数还可以作为参数传递给其他函数。例如:

代码语言:javascript复制
func apply(fn func(int) int, x int) int {
    return fn(x)
}

double := func(x int) int {
    return x * 2
}

result := apply(double, 3)
fmt.Println(result) // 输出:6

在上面的例子中,定义了一个函数 apply,它接受一个函数和一个整数作为参数,并将整数作为参数传递给函数。然后定义了一个匿名函数 double,它接受一个整数并返回它的两倍。最后将匿名函数 double 作为参数传递给函数 apply

go

0 人点赞