Go语言匿名函数 0基础学go语言系列

    /    2019-02-20

匿名函数

匿名函数是指不需要定义函数名的一种函数实现方式。1958年LISP首先采用匿名函数。

在Go里面,函数可以像普通变量一样被传递或使用,Go语言支持随时在代码里定义匿名函数。

匿名函数由一个不带函数名的函数声明和函数体组成。匿名函数的优越性在于可以直接使用函数内的变量,不必声明。

匿名函数定义

第一种,先声明一个函数类型的变量,然后定义一个匿名函数

package main

import (
    "fmt"
)

func main() {
    var sum func(intint) int
    sum = func(x, y int) int
 {
        return x + y
    }
    fmt.Println(sum(12))
}

第二种,使用更简略的 ":=" 方式定义一个匿名函数

package main

import (
    "fmt"
)

func main() {
    product := func(x, y int) int {
        return x * y
    }
    fmt.Println(product(33))
}

匿名函数应用

1、匿名函数的变量为函数地址

package main

import (
    "fmt"
)

func main() {
    sum := func(x, y int) int {
        return x + y
    }
    fmt.Printf("sum -> %v  sum(1,3) = %v\n", sum, sum(13))
}

2、直接创建匿名函数执行并返回结果

package main

import (
    "fmt"
)

func main() {
    product := func(x, y int) int {
        return x * y
    }(33)
    fmt.Printf("product = %d\n", product)
}

(2)

分享至