package main import "fmt" func main() { /* 一个类型如果定义了指针接收者的String方法: func (p *Type) String() string {} 打印这个类型的指针时会调用, 打印这个类型的值时不会调用。 */ var x Xint = 123 fmt.Println(x) // 123 fmt.Println(&x) // can not print Xint point. /* 一个类型如果定义了值接收者的String方法: func (p Type) String() string {} 打印这个类型的变量的值和指针都会调用 */ var y Yint = 123 fmt.Println(y) //can not print Yint. fmt.Println(&y) //can not print Yint. } type Xint int func (x *Xint) String() string { return "can not print Xint point." } type Yint int func (x Yint) String() string { return "can not print Yint." }