1.高阶功能
在GO,语言中,一个函数称为高阶函数,应充分填充以下条件之一。
1。将功能作为参数传递到其他函数。
func(f) f
注意:传递函数作为参数也被称为callback function
或first-class function
2。从另一个功能返回函数
func fun(f) f{
return func(){
//body
}
}
ex:1
func sum(add func(a,b, int) int){
fmt.println(add(30,20))
}
func main(){
f := func(a, b int) int {
return a+b
}
sum(f)
}
ex:2
在此示例中,我们将简单定义为返回函数
func simple() func(a,b int) int{
f := func(a,b int) int{
return a+b
}
return f
}
func main(){
s:= simple()
fmt.println(s(20,30))
}
2.匿名函数
一个没有任何名称的函数称为反义词函数
ex:1
first := func(){
fmt.Println("inside the anonymous function")
}
first()
fmt.println("%T", first)
ex:2
func(str string){
fmt.println("inside the anonymous function", str)
}("sk")
3.用户定义的功能类型
在下面的示例中添加是用户定义的类型为函数
type add func(a, b int) int
func main(){
var a add = func(a , b int) int{
return a+b
}
s :=a(50,5)
fmt.println("sum", s)
}