秒懂Golang匿名函数
上篇文章给大家介绍了go语言匿名函数的使用 需要的朋友点击查看。今天给大家介绍Golang匿名函数的相关知识,具体内容如下:
概念
所谓匿名函数,就是没有名字的函数
匿名函数(英语:AnonymousFunction)在计算机编程中是指一类无需定义标识符(函数名)的函数或子程序,普遍存在于多种编程语言中。---wikipedia
Golang是支持匿名函数的,即在需要使用函数时,再定义函数,匿名函数没有函数名,只有函数体,函数可以被作为一种类型被赋值给函数类型的变量,匿名函数往往以变量方式被传递
匿名函数经常被用于实现回调函数,闭包等.
匿名函数定义
匿名函数的定义就是:没有名字的普通函数
func(参数列表)(返回值列表){ 函数体 }
匿名函数的两种使用方式
一、在定义匿名函数的时候就可以直接使用(这种方式只使用一次)
packagemain import( "fmt" ) funcmain(){ res1:=func(n1int,n2int)int{ returnn1+n2 }(10,30)//括号里的10,30就相当于参数列表,分别对应n1和n2 fmt.Println("res1=",res1) }
D:\goproject\src\main>gorunhello.go res1=40
二、将匿名函数赋给一个变量(函数变量),再通过该变量来调用匿名函数
packagemain import( "fmt" ) funcmain(){ //将匿名函数fun赋给变量test_fun //则test_fun的数据类型是函数类型,可以通过test_fun完成调用 test_fun:=func(n1int,n2int)int{ returnn1-n2 } res2:=test_fun(10,30) res3:=test_fun(50,30) fmt.Println("res2=",res2) fmt.Println("res3=",res3) fmt.Printf("%T",test_fun) }
D:\goproject\src\main>gorunhello.go res2=-20 res3=20 func(int,int)int
全局匿名函数
全局匿名函数就是将匿名函数赋给一个全局变量,那么这个匿名函数在当前程序里可以使用
packagemain import( "fmt" ) //Test_fun就是定义好的全局变量 //全局变量必须首字母大写 var( Test_fun=func(n1int,n2int)int{ returnn1-n2 } ) funcmain(){ val1:=Test_fun(9,7) fmt.Println("val1=",val1) }
D:\goproject\src\main>gorunhello.go val1=2
到此这篇关于秒懂Golang匿名函数的文章就介绍到这了,更多相关Golang匿名函数内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。