## Mix XFMT 可以打印内部指针的格式化库 A formatting library that prints internal Pointers ## Overview 在 go 中使用 `fmt` 打印结构体时,无法打印指针字段内部的数据结构,导致增加 debug 难度,该库可以解决这个问题。 ## Installation - 安装 ``` go get -u github.com/mix-go/xfmt ``` ## Usage - 支持的方法,与 `fmt` 系统库完全一致 - `Sprintf(format string, args ...interface{}) string` - `Sprint(args ...interface{}) string` - `Sprintln(args ...interface{}) string` - `Printf(format string, args ...interface{})` - `Print(args ...interface{})` - `Println(args ...interface{})` - 支持 `Tag` 忽略某个引用字段 ``` 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(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/