概要
k0kubun/ppという、pretty printライブラリを作った。
任意の型のオブジェクトをpp.Print()
に渡すと色つきでpretty printしてくれるという非常にシンプルなもの。
作った背景
fmt.Printf("%#v", ...)
等ではわかりづらい複雑なmapやstructをdebug printするときは、pretty printを使うと便利。既存のpretty printライブラリには、GitHubで人気なものだとdavecgh/go-spewやkr/prettyなどがある。
いままではGoでデバッグのために複雑な構造をダンプするときこれらを使っていたのだが、必要以上に型の情報が書かれていたり、大きなものだと白黒なのでパッと見てわかりづらいなどの問題があった。
そこで、型やフィールドごとに別の色をつけることで視認性を高め、ビルトインの型情報は色にまかせて省略することで視認性を高くしたpretty printerを作った。
色はRubyで人気のREPLであるpryの真似をしている。
使い方
どんな型だろうととにかくpp.Print()
を呼べば良い。全ての型に対応している。
import "github.com/k0kubun/pp"
m := map[string]string{"foo": "bar", "hello": "world"}
pp.Print(m)
API
fmtパッケージに似たAPIが用意されている。
http://godoc.org/github.com/k0kubun/pp
pp.Print()
pp.Println()
pp.Sprint()
pp.Fprintf()
// ...
デモ
mapやstructがネストしているような複雑な構造のダンプに向いている。
Tweet
Favorite event
追記: windows対応しました
mattnさんのコメントを受けてwindowsにも対応しました
機会があれば是非お試しください。