老师,请问为什么结构绑定的方法的接收者改成指针接收者以后,用结构声明的变量也别成了指针类型?如下,Retriever的Get和Post方法的接收者定义为指针类型,为什么 mock.Retriever{Contents: “This is a fake imooc.com”} 声明的变量 retriever 也变成了指针类型??如果一个结构里面,有的方法用指针接收者绑定,有的用值接收者绑定,用这个结构声明变量的时候,得到的变量是指针类型还是值类型??
/////////////////////////////////////////////////////////////////////////////
// mock.Retriver
/////////////////////////////////////////////////////////////////////////////
//Retriever …
type Retriever struct {
Contents string
}
//Get …
func (r *Retriever) Get(url string) string {
return r.Contents
}
//Post …
func (r *Retriever) Post(url string, form map[string]string) string {
r.Contents = form[“contents”]
return “ok”
}
/////////////////////////////////////////////////////////////////////////////
// main.go
/////////////////////////////////////////////////////////////////////////////
var r RetrievePoster
retriever := mock.Retriever{Contents: “This is a fake imooc.com”}
r = &retriever