This question already has answers here:
Whats the difference of functions and methods in Go?

(3个答案)



Parameter before the function name in Go? [duplicate]

(1个答案)


1年前关闭。



type TestContent struct {
  x string
}

//CalculateHash hashes the values of a TestContent
func (t TestContent) CalculateHash() ([]byte, error) {
  h := sha256.New()
  if _, err := h.Write([]byte(t.x)); err != nil {
    return nil, err
  }

  return h.Sum(nil), nil
}

在已声明的函数CalculateHash()中,为什么在函数名称之前写入了数据类型t TestContent?返回类型不是应该写在函数名称之后吗?

最佳答案

(t TestContent)不是返回类型。 (t TestContent)表示CalculateHashTestContent结构的方法。该函数的返回类型为([]byte, error)

它用于TestContent的实例,即:

  var t TestContent
  bytes, err := t.CalculateHash()

09-10 06:22