go 使用 ast 优化结构体打印样式

与 kubernetes 代码交互,常有难以名状的interface,需要猜测里面的数据,非常痛苦。使用 ast 打印可以一目了然里面的数据,是开发过程中不得或缺的辅助工具。这篇文章简单记录我的使用情况。


package xxx

import (
	"go/ast"
	"go/token"	
)

func GuessType(obj interface{}) {
	fset := token.NewFileSet()
	ast.Print(fset, obj)
}

将 obj 传入 GuessType 方法即可:

GuessType(obj)

参考资料


go 基本类型的互转 go 字符串拆分 split