Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据

发布于 1周前 作者 bupafengyu 来自 Go语言

goutil/dump - 是一个 golang 数据打印工具包,可以打印出漂亮易读的 go slice, map, struct 数据。

主要功能:

  • 使用简单,直接调用 dump.P(vars...) 即可
  • 支持所有的基础数据类型
  • 支持 slice, map, struct 数据结构
  • 支持传入打印多个变量
  • 默认输出调用位置,方便使用
  • 支持自定义部分能力,如 缩进,色彩主题等

效果预览:

image

Git Repo:

打印基础类型

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”, ) }

输出效果:

image

打印 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”}, }, ) }

输出效果:

image

打印 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”, }, }, ) }

输出效果:

image

打印 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,
)

}

输出效果:

image

自定义 dumper

支持自定义 dumper 一些选项。如 缩进,色彩主题等


Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据

更多关于Golang Go语言中 goutil/dump - 打印漂亮易读的 Go 数据的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于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可能会随着版本更新而变化。因此,在使用时,建议查阅最新的库文档以获取最准确的信息。

回到顶部