项目地址 https://github.com/ysmood/got/tree/master/lib/gop
目的是把复杂的结构体打印成易于阅读的格式。输出的格式使用的 Go 原生语法,不需要学习任何额外的知识就可以阅读输出。不像其他库可能需要考猜测输出格式。
特性
- 使用原生 Go 语法输出
- 支持循环引用(比如 go-spew 的这个 bug, 而 gop 可以正常打印)
- 更好的 rune, []byte, time 等数据的可读性
- 字符串里的隐藏字符也会被打印
- 可配置的高亮打印
- 根据排序后的 key 输出一致的 map
- 自动将多行大段文字打印成多行以便于阅读
- 可扩展的 API
用法
通常你只需要用 gop.P 函数:
package main
import (
"time"
"github.com/ysmood/got/lib/gop"
)
func main() {
val := map[string]interface{}{
"bool": true,
"number": 1 + 1i,
"bytes": []byte{97, 98, 99},
"lines": "multiline string\nline two",
"slice": []interface{}{1, 2},
"time": time.Now(),
"struct": struct{ test int32 }{
test: 13,
},
}
val["slice"].([]interface{})[1] = val["slice"]
gop.P(val)
}
输出:
