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."
}
posted on 2018-09-02 20:37  scala  阅读(146)  评论(0编辑  收藏  举报