匿名函数(lambda表达式)
匿名函数
在Go中函数也是值,程序中可以声明一个函数类型的变量,将函数作为参数传递。声明函数为值的变量(匿名函数:可赋值个变量,也可直接执行)
package main
import(
"fmt"
)
//求矩形的面积
func main(){
myfun := func(x int, y int)int{
return x * y
}
fmt.Printf("这个矩形的面积是:3 X 5=%d", myfun(3,5))
}
这种可以把函数当成变量的写法也被称为lambda表达式,或者匿名函数。上面的程序还可以换成下面的写法:
package main
import(
"fmt"
)
var(
myfun = func(x int, y int)int{//求矩形的面积
return x * y
}
)
func main(){
fmt.Printf("这个矩形的面积是:3 X 5=%d", myfun(3,5))
}
除了给了上面的写法,还可以把匿名函数作为返回值
package main
import(
"fmt"
)
func myfunc(x, y int)int{
return func(i, j int)int{//匿名函数
return i * j
}(x, y)
}
func main(){
fmt.Printf("这个矩形的面积是:3 X 5=%d", myfunc(3,5))
}
为什么匿名函数叫lambda 表达式?
https://www.zhihu.com/question/27448188
参考:https://www.bookstack.cn/read/gobook/go_lang_base-04.1.2.md
浪漫家园,没事就来逛逛