Golang: struct打印输出问题(10)

每次都要实现 String() 或者 GoString(),太麻烦了。

专栏的介绍可以参考 《GotchaGolang专栏》,代码可以看《宝库-Gotcha》

以前在学习 标准库 fmt 的时候,说过如果你想更好的打印,可以使用 formater,最不济也可以重写 String() 或者 GoString()。如果不想这么做,可以简单的用 %+v 来打印。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import "fmt"

type address struct {
city,province string
}

type info struct {
name string
id int
addr address
}

func main() {
//address{} 必须写
v := info{"Nan", 33, address{city:"shanghai", province:"shanghai"}}

fmt.Printf("%v\n", v) //{Nan 33 {shanghai shanghai}}
fmt.Printf("%+v\n", v) //{name:Nan id:33 addr:{city:shanghai province:shanghai}}
}

方便很多,不需要重写哪些方法了。


Merlin 2018.3 泛型容器的坑

文章目录
|