15_匿名函数和闭包的使用
Posted zhaopp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了15_匿名函数和闭包的使用相关的知识,希望对你有一定的参考价值。
1、在go语言中,所有的匿名函数(规范称为:函数字面量)都是闭包函数,匿名函数不需要定义函数名的一种函数
实现形式,它并不是一个新概念,可以追溯到语言
2、闭包:就是一个“函数”捕获了和它在同一个作用域的其他常量。
这就意味着当闭包被调用的时候,不管程序在什么地方调用,闭包都能够使用这些常量或者变量。
它并不关心这些捕获的常量和数量是否已经超越了作用域,所以只要这些闭包还在使用,这些变量就还会存在
package main
import "fmt"
func main()
rank := 1
comment := "优秀"
//第一种方式,可以通过定义变量来调用匿名函数
f := func()
fmt.Printf("rank=%d,comment=%s\\n", rank, comment)
f() //函数调用
//第二种方式,通过定义一个函数类型进行调用
type Ftest func()
var f2 Ftest = f
f2()
//第三种,不通过变量,定义完立即执行
//无参无返回值
fmt.Println("无参无返回值--")
func()
fmt.Printf("rank=%d,comment=%s\\n", rank, comment)
() //()表示对匿名函数的调用
//有参无返回值
func(a, b int)
res := a + b
fmt.Println(res)
(1, 3) //传参调用
//有参有返回值
result := func(a, b int) (res int)
res = a + b
return
(1, 3) //传参调用匿名函数
fmt.Println("result=", result)
运行结果:
以上是关于15_匿名函数和闭包的使用的主要内容,如果未能解决你的问题,请参考以下文章