Mix XFMT 解决 Golang 结构体嵌套格式化打印指针地

2020-12-25  本文已影响0人  撸代码的乡下人

OpenMix 出品:https://openmix.org

Mix XFMT

可以打印结构体嵌套指针地址内部数据的格式化库

Formatting library that can print the internal data of the nested pointer address of the struct

Github

https://github.com/mix-go/xfmt

Overview

在 Golang 中使用 fmt 打印结构体时,无法打印指针字段内部的数据结构,导致增加 debug 难度,该库可以解决这个问题。

Installation

go get -u github.com/mix-go/xfmt

Usage

type Foo struct {
    Bar *Bar `xfmt:"-"`
}

包含指针的结构体

type Level3 struct {
    Name string
}

type Level2 struct {
    Level3 *Level3 `xfmt:"-"`
    Name   string
}

type Level1 struct {
    Name     string
    Level2   *Level2
    Level2_1 *Level2
}

创建变量

l3 := Level3{Name: "Level3"}
l2 := Level2{Name: "Level2", Level3: &l3}
l1 := Level1{Name: "Level1", Level2: &l2, Level2_1: &l2}

打印对比

fmt.Println(fmt.Sprintf("%+v", l1))
{Name:Level1 Level2:0xc00009c500 Level2_1:0xc00009c500}
fmt.Println(xfmt.Sprintf("%+v", l1))
{Name:Level1 Level2:0xc00009c500:&{Level3:0xc00007f030 Name:Level2} Level2_1:0xc00009c500}

License

Apache License Version 2.0, http://www.apache.org/licenses/

上一篇下一篇

猜你喜欢

热点阅读