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_匿名函数和闭包的使用的主要内容,如果未能解决你的问题,请参考以下文章

python_005_匿名函数,闭包函数,递归函数

python入门第十六天__匿名函数,返回函数,闭包

php Closure类 闭包 匿名函数

网站前端_JavaScript-基础入门.0016.JavaScript匿名闭包

PHP匿名函数(闭包函数)详解_php技巧 - PHP

PHP 回调匿名函数和闭包