我不明白在哪一点调用接口方法。我正在查看Go Tour中的以下示例:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func (p Person) String() string {
return fmt.Sprintf("%v (%v years)", p.Name, p.Age)
}
func main() {
a := Person{"Arthur Dent", 42}
z := Person{"Zaphod Beeblebrox", 9001}
fmt.Println(a, z)
}
问题:
我知道func (p Person)接收String()方法并返回string我想要显示的。但是fmt.Printlninmain()方法必须String()在某个时候调用,对吗?
我查看了fmtin godoc的来源,但我仍然无法弄清楚!
另一个例子:
如果我添加我自己的接口,让我们说Stringer2一个调用的方法String2(),然后创建一个func (p Person) String2() {....}. 如何String()被执行fmt.Println,但String2()不执行?
梵蒂冈之花
GCT1015
相关分类