Go 为什么返回&;然后返回${name,0}

Go 为什么返回&;然后返回${name,0},go,Go,代码: 问题: 为什么NewAccount返回值是&{name,0}为什么不是内存地址?这是默认的fmt打印格式。有关如何更改格式的信息,请参见动词部分: fmt.Println(新帐户(“名称”)) //输出:&{name 0} fmt.Printf(“%p\n”,新帐户(“名称”)) //输出:0xc00010c040 或者使用内置的或函数,但请记住,这些并不能保证保留在语言中 println(新帐户(“名称”)) //输出:0xc0000a0f60 看一看,看看这是否能回答您的问

代码:

问题:
为什么NewAccount返回值是&{name,0}为什么不是内存地址?

这是默认的
fmt
打印格式。有关如何更改格式的信息,请参见动词部分:

fmt.Println(新帐户(“名称”))
//输出:&{name 0}
fmt.Printf(“%p\n”,新帐户(“名称”))
//输出:0xc00010c040


或者使用内置的或函数,但请记住,这些并不能保证保留在语言中

println(新帐户(“名称”))
//输出:0xc0000a0f60

看一看,看看这是否能回答您的问题。这是否能回答您的问题?顺便说一下,在创建名为
account
的局部变量后,您将无法访问类型
account
type account struct {
    owner   string
    balance int
}
func NewAccount(owner string) *account {
    account := account{owner: owner, balance: 0}
    return &account
}