Go语言匿名函数

幸运草 2020年4月20日23:09:05函数代码评论阅读模式

Go语言匿名函数

匿名函数

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

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

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

匿名函数定义

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

package main

import (
    "fmt"
)

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

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

package main

import (
    "fmt"
)

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

匿名函数应用

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

package main

import (
    "fmt"
)

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

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

package main

import (
    "fmt"
)

func main() {
    product := func(x, y int) int {
        return x * y
    }(3, 3)
    fmt.Printf("product = %dn", product)
}

特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
幸运草
Go语言中的常量 函数代码

Go语言中的常量

1 概述 常量,一经定义不可更改的量。功能角度看,当出现不需要被更改的数据时,应该使用常量进行存储,例如圆周率。从语法的角度看,使用常量可以保证数据,在整个运行期间内,不会被更改。例如当前处理器的架构...
Go语言的接口 函数代码

Go语言的接口

Go语言-接口 在Go语言中,一个接口类型总是代表着某一种类型(即所有实现它的类型)的行为。一个接口类型的声明通常会包含关键字type、类型名称、关键字interface以及由花括号包裹的若干方法声明...
Go语言支持的正则语法 函数代码

Go语言支持的正则语法

1 字符 语法 说明 . 任意字符,在单行模式(s标志)下,也可以匹配换行 字符类 否定字符类 d Perl 字符类 D 否定 Perl 字符类 ASCII 字符类 否定 ASCII 字符类 pN U...
Go语言的包管理 函数代码

Go语言的包管理

1 概述 Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。 2 main包 Go 语言的入口 main() 函数所在的包(pa...

发表评论