Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Go中打印结构时调用String()String方法?_Go - Fatal编程技术网

为什么在Go中打印结构时调用String()String方法?

为什么在Go中打印结构时调用String()String方法?,go,Go,下面是示例代码: package main import ( "fmt" ) type Foo struct {} func (Foo) String() string { return "String() called" } func main() { f := Foo{} fmt.Printf("%#v | \"%v\"",f,f) } 输出:main.Foo{}|“String()调用” String()String方法是由struct类型返回的默

下面是示例代码:

package main

import (
    "fmt"
)

type Foo struct {}

func (Foo) String() string {
    return "String() called"
}

func main() {
    f := Foo{}
    fmt.Printf("%#v | \"%v\"",f,f)
}
输出:
main.Foo{}|“String()调用”


String()String
方法是由
struct
类型返回的默认方法吗?

,因为
fmt
就是这样实现的。你可以在这里了解更多:谢谢@mkopriva,这个链接:也回答了我的问题。