Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据
goutil/dump
- 是一个 golang 数据打印工具包,可以打印出漂亮易读的 go slice, map, struct 数据。
主要功能:
- 使用简单,直接调用
dump.P(vars...)
即可 - 支持所有的基础数据类型
- 支持 slice, map, struct 数据结构
- 支持传入打印多个变量
- 默认输出调用位置,方便使用
- 支持自定义部分能力,如 缩进,色彩主题等
效果预览:
Git Repo:
- Gitee: https://gitee.com/gookit/goutil
- Github: https://github.com/gookit/goutil/
- GoDoc: https://pkg.go.dev/github.com/gookit/goutil/dump
打印基础类型
package main
import “github.com/gookit/goutil/dump”
// rum demo:
// go run ./dump/_examples/basic_types.go
func main() {
dump.P(
nil, true,
12, int8(12), int16(12), int32(12), int64(12),
uint(22), uint8(22), uint16(22), uint32(22), uint64(22),
float32(23.78), float64(56.45),
‘c’, byte(‘d’),
“string”,
)
}
输出效果:
打印 slice
打印 array, slice 都会一行一个元素输出,同时会在最后输出长度。
package main
import “github.com/gookit/goutil/dump”
// rum demo:
// go run ./dump/_examples/slice.go
func main() {
dump.P(
[]byte(“abc”),
[]int{1, 2, 3},
[]string{“ab”, “cd”},
[]interface{}{
“ab”,
234,
[]int{1, 3},
[]string{“ab”, “cd”},
},
)
}
输出效果:
打印 map
打印 map 数据结构,会一行一个元素输出,同时会在最后输出 map 长度。
package main
import “github.com/gookit/goutil/dump”
// rum demo:
// go run ./map.go
// go run ./dump/_examples/map.go
func main() {
dump.P(
map[string]interface{}{
“key0”: 123,
“key1”: “value1”,
“key2”: []int{1, 2, 3},
“key3”: map[string]string{
“k0”: “v0”,
“k1”: “v1”,
},
},
)
}
输出效果:
打印 struct
打印 struct 数据,指针类型会自动打印底层真实数据
package main
import (
“fmt”
"github.com/gookit/color"
"github.com/gookit/goutil/dump"
)
// rum demo:
// go run ./struct.go
// go run ./dump/_examples/struct.go
func main() {
s1 := &struct {
cannotExport map[string]interface{}
}{
cannotExport: map[string]interface{}{
“key1”: 12,
“key2”: “abcd123”,
},
}
s2 := struct {
ab string
Cd int
}{
"ab", 23,
}
color.Infoln("- Use fmt.Println:")
fmt.Println(s1, s2)
color.Infoln("\n- Use dump.Println:")
dump.P(
s1,
s2,
)
}
输出效果:
自定义 dumper
支持自定义 dumper 一些选项。如 缩进,色彩主题等
Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据
更多关于Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Go语言中,goutil/dump
是一个非常有用的工具包,它提供了一种简单而优雅的方式来打印Go数据结构,使其变得漂亮且易读。这对于调试和日志记录来说特别有用,因为它可以帮助开发者快速理解复杂的数据结构。
goutil/dump
通常不是Go标准库的一部分,而是由社区开发的第三方库。要使用它,你需要先通过 go get
命令获取该库:
go get -u github.com/your-repo/goutil/dump # 这里的URL需要替换为实际的库地址
获取库后,你可以在你的Go代码中导入并使用它。例如:
package main
import (
"fmt"
"github.com/your-repo/goutil/dump" // 替换为实际的导入路径
)
func main() {
data := map[string]interface{}{
"name": "Alice",
"age": 30,
"isAdmin": true,
}
// 使用dump.Dump打印数据
dump.Dump(data)
// 你也可以使用dump.Print,它会打印到标准输出
// dump.Print(data)
}
dump.Dump
函数会将数据结构以树状形式打印到标准错误输出,而 dump.Print
则会打印到标准输出。这使得在调试时,你可以轻松地在控制台查看复杂数据结构的内部细节。
注意,由于goutil/dump
不是标准库的一部分,所以库的URL和API可能会随着版本更新而变化。因此,在使用时,建议查阅最新的库文档以获取最准确的信息。