上篇文章给大家介绍了go语言匿名函数的使用 需要的朋友点击查看。今天给大家介绍Golang匿名函数的相关知识,具体内容如下:
概念
所谓匿名函数,就是没有名字的函数
匿名函数(英语:Anonymous Function)在计算机编程中是指一类无需定义标识符(函数名)的函数或子程序,普遍存在于多种编程语言中。---wikipedia
Golang是支持匿名函数的,即在需要使用函数时,再定义函数,匿名函数没有函数名,只有函数体,函数可以被作为一种类型被赋值给函数类型的变量,匿名函数往往以变量方式被传递
匿名函数经常被用于实现回调函数,闭包等.
匿名函数定义
匿名函数的定义就是: 没有名字的普通函数
func (参数列表) (返回值列表) { 函数体 }
匿名函数的两种使用方式
一、在定义匿名函数的时候就可以直接使用(这种方式只使用一次)
package main import ( "fmt" ) func main(){ res1 := func (n1 int, n2 int) int { return n1 + n2 }(10, 30) //括号里的10,30 就相当于参数列表,分别对应n1和n2 fmt.Println("res1=",res1) }
D:\goproject\src\main>go run hello.go res1= 40
二、将匿名函数赋给一个变量(函数变量),再通过该变量来调用匿名函数
package main import ( "fmt" ) func main(){ //将匿名函数fun 赋给变量test_fun //则test_fun的数据类型是函数类型,可以通过test_fun完成调用 test_fun := func (n1 int, n2 int) int { return n1 - 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>go run hello.go res2= -20 res3= 20 func(int, int) int
全局匿名函数
全局匿名函数就是将匿名函数赋给一个全局变量,那么这个匿名函数在当前程序里可以使用
package main import ( "fmt" ) //Test_fun 就是定义好的全局变量 //全局变量必须首字母大写 var ( Test_fun = func (n1 int, n2 int) int { return n1 - n2 } ) func main(){ val1 := Test_fun(9, 7) fmt.Println("val1=", val1) }
D:\goproject\src\main>go run hello.go val1= 2
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年09月23日
2024年09月23日
- 华少翌.2005-华少翌【中唱艺能】【WAV+CUE】
- 群星《十二女声Ⅱ》[WAV/CUE/分轨][527MB]
- 大自然音乐系列《漫步在山裡》[WAV/CUE/分轨][502.8MB]
- 大自然音乐系列《星光夜语》[WAV/CUE/分轨][453.3MB]
- 史依弘《史依弘交响乐京剧演唱专辑HQ》头版限量编号[WAV+CUE]
- 曼丽2020《女人三十风继续吹》HQCD[WAV+CUE]
- 曼丽2021《女人三十2雾之恋》HQCD[WAV+CUE]
- 隔壁老樊.2019-我曾【好听音乐】【FLAC分轨】
- 高林生.1993-牵挂你的人是我【白天鹅】【WAV+CUE】
- 洪卓立.2012-找个懂我的女孩(国专)【英皇娱乐】【WAV+CUE】
- 曼丽2022《女人三十3晚秋》HQCD[WAV+CUE]
- 曼丽2018《女人三十4冬天》HQCD[WAV+CUE]
- 柏菲-《好歌30年壹》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 大自然音乐系列《水舞》[WAV/CUE/分轨][424.3MB]
- 大自然音乐系列《星光夜语》[WAV/CUE/分轨][453.3MB]