知识卡片
方法与接收者
内容
Go里的方法是隶属于特定类型的函数,指针、接口以及任何具名类型(不只是结构体)都可以拥有方法;方法定义时绑定的那个类型实例叫接收者(receiver),方法既能读取也能修改接收者的状态。发散:这种”方法是绑定了接收者的函数”的视角,解释了为什么Go里方法值可以脱离类型单独当作函数值传递(如fn := t.Method),本质上方法只是语法糖包出来的普通函数。
参考来源
- 位置:《Go Web编程》第2章《ChitChat论坛》(源文件:_epub-src/OEBPS/text00014.html)
- 结论依据:原文在该章节围绕“Go里的方法是隶属于特定类型的函数,指针、接口以及任何具名类型(不只是结构体)都可以拥有方法;方法定义时绑定的…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:比如说,通过将函数与指向 Thread 结构的指针进行绑定,可以创建出一个针对 Thread 结构的方法,而传入方法里面的 Thread 结构则称为 接收者 (receiver):方法可以访问接收者,也可以修改接收者。 作为例子,代码清单2-16展示了 NumReplies 方法的实现代码。 代码清单2-16 thread.go 文件中的…