```go
type T struct {
Name string
}
func (t T) M1 () {
t.Name = "name1"
}
func (t *T) M2 () {
t.Name = "name2"
}
type intf interface {
M1()
M2()
}
func main() {
var t1 T = T{"t1"}
t1.M1()
t1.M2()
var t2 intf = t1
t2.M1()
t2.M2()
}
```
为什么当我使用T类型的变量时,赋值给intf接口的时候,会出错,但是我使用```var tf intf = &t1```的时候就是正确的
按理说,如果说```var tf intf = t1```会出错,那么就说明t1,也就是T类型没有实现M2的方法,那么同理&t1,也就是T类型的指针,也没有实现M1的方法呀,但是为什么使用指针就能够赋值给接口~~~
有疑问加站长微信联系(非本文作者)