分享一下自己在用的 go-dump 库

2020-07-19 11:29:26 +08:00
 kzzhr

先看效果:

aInt := 1
bStr := `sf`
cMap := map[string]interface{}{"name": "z", "age": 14}
dArray := []interface{}{&cMap, aInt, bStr}

dump.Dump(aInt, &aInt, &bStr, bStr, cMap, dArray, cMap["name"], dArray[2], dArray[aInt])

https://i.imgur.com/bBV53DC.jpg

相比 print 会提供几个信息:

为什么要搞这个东西?

之前调 Go 的代码的时候用 print,但是打出来的日志总是不知道在哪,经常还会看到别人使用 print("===ABC===")

后来用 GoLand 的 postfix 功能做了一键打印 json 。但脱离了 GoLand 就不太好使了,于是决定实现一个库,哪都能用。

再发一个 postfix 的方式,在 Goland 里还是挺好用的

https://i.imgur.com/WQaQFHq.gif

Repo 地址(好用的话不要忘了赏我一个 star 😂)

Github: https://github.com/Kretech/xgo/tree/master/dump

2026 次点击
所在节点    Go 编程语言
4 条回复
somalia
2020-07-19 22:20:33 +08:00
star
mornlight
2020-07-20 17:55:23 +08:00
你这个获取参数名的方式有点风骚,学习了
mornlight
2020-07-20 18:08:09 +08:00
请教一下楼主,最里面是 ast 解析源码,那么如果在编译后没有源码的运行环境,parser.ParseFile 是不是就失效了,拿不到参数名?
kzzhr
2020-07-21 23:54:39 +08:00
@mornlight 对,在没有源码的运行环境是不行的。所以主要还是用在调试。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX