在func中f括号后的括号是什么意思?

pog*_*ule 7 go

作为一名Go初学者,我偶然发现了代码后面有括号的代码func

func (v Version) MarshalJSON() ([]byte, error) {
  return json.Marshal(v.String())
}
Run Code Online (Sandbox Code Playgroud)

(v Version)意味着什么?

Wan*_*uta 10

这不是一种功能,而是一种方法.在这种情况下,它将MarshalJSON方法添加到Version结构类型.

v是接收到的值的名称(就类似于的Java方法或自身在Python),该版本指定我们添加的方法类型.

有关更多详细信息,请参阅示例,以及示例和规范.

  • 需要注意的一点是,您可以将函数接收器附加到任何类型的go中,它不一定是结构. (2认同)