假设定义一个结构体
```go
type A struct{
}
```
定义一个方法:
```go
func (self *A) SayHi() {
fmt.println("你好")
}
```
我想问方法第一个括号里加 `*` 与不加 `*` 有什么区别。测试好像没什么区别。请高手指点下。
我是在网上看到下面这句话才想问的,我不太懂。
```
对于接口的执行机制:
1.T仅拥有属于T类型的方法集,而*T则同时拥有(T+*T)方法集
2.基于T实现方法,表示同时实现了interface和interface(*T)接口
3.基于*T实现方法,那就只能是对interface(*T)实现接口
```
a1 := &A{} a1可以调用 SayHi
a2 := A{} a2不可以调用SayHi
所以尽量用指针
你的1 是对的, 2 和3 是错的, T只含有T的, *T 包含了T和*T的
#5
更多评论