目录

4.1.2 匿名函数 lambda 表达式

优质
小牛编辑
115浏览
2023-12-01

匿名函数

  在Go中函数也是值,程序中可以声明一个函数类型的变量,将函数作为参数传递。声明函数为值的变量(匿名函数:可赋值个变量,也可直接执行)

pro04_1_2_1.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))
}