匿名函数
匿名函数(英语:Anonymous Function)在计算机编程中是指一类无需定义标识符(函数名)的函数或子程序,普遍存在于多种编程语言中。—wikipedia
Golang是支持匿名函数的,即在需要使用函数时,再定义函数,匿名函数没有函数名,只有函数体,函数可以被作为一种类型被赋值给函数类型的变量,匿名函数往往以变量方式被传递
匿名函数经常被用于实现回调函数,闭包等.
匿名函数定义
匿名函数的定义就是: 没有名字的普通函数
func (参数列表) (返回值列表) {
函数体
}
匿名函数的调用
1、在定义时调用匿名函数
匿名函数可以在声明后直接调用; 例如:
package main
import “fmt”
func main() {
// 定义匿名函数并赋值给f变量
f := func(data int) {
fmt.Println(“hello”, data)
}
// 此时f变量的类型是func(), 可以直接调用
f(100)
}
匿名函数的用途非常广泛,匿名函数本身是一种值,可以方便的保存在各种容器中实现回调函数和操作封装
2 匿名函数做回调函数
回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用
匿名函数作为回调函数的设计在go语言的系统包中是很长见的;strings包中就有这种实现:
func TrimFunc(s string, f func(rune) bool) string {
return TrimRightFunc(TrimLeftFunc(s, f), f)
}
下面我们自己来写个demo,领会回调函数的特点:
package main
import “fmt”
/*