标签:string name golang HandlerFunc func type 函数
go 语言中函数是一等公民,因此针对函数的使用也可以多种多样。在go语言中函数可以作为函数参数传递,也可以作为函数的返回值返回。
function type就是一种典型的应用。
关于function type 官方的定义如下
A function type denotes the set of all functions with the same parameter and result types.
字面意思就是有着相同的参数和返回结果的函数的合集
解释一下
type HandlerFunc func(name string)
上面的HandleFunc 是我们自定义的一个函数类型的变量,任何有相同参数的(name string) 函数都可以归为此类型的函数.下面两个函数 callback 和callback2都可以作为HandleFunc类型函数。
func callback(name string) {
fmt.Println(name)
}
func callback2(name string) {
fmt.Println("Hello" + name)
}
函数类型变量可以定义自己的方法,下面定义一个方法用来执行函数本身
func (f HandlerFunc) run(i string) {
f(i)
}
func SomeRun(f HandlerFunc, name string) {
f.run(name)
}
func main() {
f := HandlerFunc(callback)
SomeRun(f,"XiaoMing")
f2 := HandlerFunc(callback2)
SomeRun(f2,"XiaoHong")
}
运行结果
XiaoMing
HelloXiaoHong
前面讲过golang中函数为一等公民可以作为函数参数,SomeRun 函数的第一个参数就是一个函数。
代码中的HandlerFunc(callback) 就是将callback 函数转换成HadlerFunc 转换完成后就可以作为参数传入 SomeRun函数了。
————————————————
版权声明:本文为CSDN博主「NKCCDD」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/niekunhit/article/details/121637104
标签:string,name,golang,HandlerFunc,func,type,函数 来源: https://www.cnblogs.com/rincloud/p/16263830.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。