内容简介:OpenMix 出品:https://openmix.org Mix XFMT 可以打印结构体嵌套指针地址内部数据的格式化库 Formatting library that can print the internal data of the nested pointer address of the struct Github https...
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
-
支持的方法,与
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
打印
fmt.Println(fmt.Sprintf("%+v", l1))
{Name:Level1 Level2:0xc00009c500 Level2_1:0xc00009c500}
xfmt
打印:其中 Level3 被定义的 tag 忽略,Level2_1 由于和 Level2 是同一个指针因此后面的忽略处理
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/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
鸟哥的Linux私房菜
鸟哥 / 人民邮电出版社 / 2010-6-28 / 88.00元
本书是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口 shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系......一起来看看 《鸟哥的Linux私房菜》 这本书的介绍吧!