Golang理解-函数变量

函数变量


函数作为变量值

函数变量是把函数作为值保存到变量中.

在Golang中,,函数也是一种类型,可以和其他类型一样被保存在变量中.例如:

package main

// 将函数作为值保存到变量中
import (
        "fmt"
)

func fire() {
        fmt.Println("fire")
}

func main(){
        f := fire()     // 将变量f声明为func()类型,此时f就被俗称为“回调函数”, 此时f的值为nil
        f()
}
链式调用

链式调用是一个泛概念,到底是什么东西的链式调用不明确。

  1. 函数的返回值是一个函数时,函数也能链式调用;

  2. 函数的返回值是一个对象时,直接调用返回值中对象的方法也是链式调用。

但是前者(1)显然是没有意义的。真正有意义的链式调用是后者(2),也就是方法链(method chaining)。方法链这个词是有的,而且使用的很广泛。其实很多人口中的链式调用实际上就是指方法链。但是链式调用这个词语还可以描述函数调用链,所以让它自身的存在价值变得难以理解。

你可能感兴趣的:(golang,netty,java)