GO中的头等舱功能
#github #go #functions #gonuts

1.高阶功能

在GO,语言中,一个函数称为高阶函数,应充分填充以下条件之一。

1。将功能作为参数传递到其他函数。

func(f) f

注意:传递函数作为参数也被称为callback functionfirst-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)
}