关于方法的一些知识点:
type T struct {thing int}func (t *T)change() {t.thing = 1}func (t T)Write() string {return fmt.Sprint(t)}func () {t1 := T{0} //t1是值类型t1.change()//值类型调用指针方法fmt.Println(t1.Write())t2 := &{0}//t2是指向T的一个指针t2.change()fmt.Println(t2.Write())//指针调用值方法}/*{1}{1}*/
无论结构体接收者是值类型或是指针,都可以互相调用.t1.change() 替代了 (&t1).change()t2.Write() 替代了 (*t2).Write()
对于类型T,如果*T上存在方法 Meth(),并且 t 是这个类型的变量,那么 t.Meth() 会被自动转换为 (&t).Meth()
