对于String()的疑问

来源:6-5 接口的组合

Young小师

2020-04-09

//大概如下
type Anyway struct{
	data int
}

func (a *Anyway) String() string{
	return sprintf("Implement Stringer interface{data:%d}",data)
}

func main(){
	a := &Anyway{data:666}
	fmt.Println{a}
	fmt.Println{a.String()}
}

//输出结果都是Implement Stringer interface{data:666}
问:为什么没调用String()还是这个结果?
写回答

1回答

ccmouse

2020-04-09

这就是stringer interface的作用。print系列函数里面会看传进来的参数有没有实现stringer,如果有,就会自动调用String()

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程