不,回归'在Golang中返回值的方法

时间:2017-03-23 10:30:17

标签: go

我正在寻找Go的视频教程。我看到有一个类型声明和方法必须返回该类型的指针。

type testType struct {
    value int
}

func (h *testType) testFunction(w http.ResponseWriter, r *http.Request) {
    // we have empty body
}

如您所见,函数体是空的,没有return语句。

  • 为什么要编译?我不知道错过了'返回'对于必须返回某些值的方法,允许使用指令。你能告诉我他们什么时候不是强制性的吗?
  • 在这种情况下会返回什么价值?总是零?

1 个答案:

答案 0 :(得分:7)

这不是函数的返回类型,它是一种方法,被称为接收器类型。

请参阅Spec: Function declarationsSpec: Method declarations

返回类型位于函数Signature的末尾,例如:

func testFunction(w http.ResponseWriter, r *http.Request) *testType {
    return nil
}

这是一个函数,返回类型为*testType

此:

func (h *testType) testFunction(w http.ResponseWriter, r *http.Request) {
    // we have empty body
}

是一个接收器类型为*testType且没有返回类型的方法。