【发布时间】:2015-11-07 20:09:18
【问题描述】:
我很难理解为什么这些规则与指针类型 .vs 的方法集相关联。值类型
谁能解释一下原因(从接口表的角度)
(来自威廉肯尼迪博客的片段)
Values Methods Receivers
-----------------------------------------------
T (t T)
*T (t T) and (t *T)
Methods Receivers Values
-----------------------------------------------
(t T) T and *T
(t *T) *T
规范中的片段
方法集
一个类型可能有一个与之关联的方法集。接口类型的方法集就是它的接口。 任何其他类型 T 的方法集由所有以接收者类型 T 声明的方法组成。对应指针类型 *T 的方法集是所有以接收者 *T 或 T 声明的方法的集合(即它还包含该方法T 组)。进一步的规则适用于包含匿名字段的结构,如结构类型部分所述。任何其他类型都有一个空方法集。在方法集中,每个方法都必须有一个唯一的非空方法名。
类型的方法集决定了该类型实现的接口以及可以使用该类型的接收器调用的方法。
【问题讨论】:
标签: go