go - Go 中 func 后面的括号是什么意思?

标签 go

<分区>

作为围棋初学者,我 stumbled across code func

后面有括号
func (v Version) MarshalJSON() ([]byte, error) {
  return json.Marshal(v.String())
}

那么 (v Version) 是什么意思呢?

最佳答案

这不是函数而是方法。在这种情况下,它将 MarshalJSON 方法添加到 Version 结构类型。

v 是接收值的名称(类似于 Java 方法中的 this 或 Python 中的 self), Version 指定我们要将方法添加到的类型。

参见 go by example好吧,举个例子,specification了解更多详情。

关于go - Go 中 func 后面的括号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361778/

相关文章:

go - 每 N 秒运行一次函数,上下文超时

go - 如何使用正则表达式匹配任何重复字符?

go - 无法合并 slice

session - 在 context.Context 中添加多个键值来自 Web 服务 API

xml - Golang XML Unmarshal 值覆盖问题

linux - os.FindProcess(pid) 之后的 os.Process.Wait() 适用于 Windows 而不是 linux

google-app-engine - AppEngine 灵活的静态 index.html

json - 将变量类型的 json 转换为字符串

mongodb - 从请求中序列化一个表单并放入 mongo

mongodb - 对象中的对象 对象中的对象 Golang