有沒有像Ruby
的awesome_print
在Golang
?漂亮的印刷golang變量
例如,在Ruby中,你可以寫:
require 'ap'
x = {a:1,b:2} // also works for class
ap x
輸出將是:
{
"a" => 1,
"b" => 2
}
我能找到
最接近的事是Printf("%#v", x)
有沒有像Ruby
的awesome_print
在Golang
?漂亮的印刷golang變量
例如,在Ruby中,你可以寫:
require 'ap'
x = {a:1,b:2} // also works for class
ap x
輸出將是:
{
"a" => 1,
"b" => 2
}
我能找到
最接近的事是Printf("%#v", x)
如果你的目標是避免導入第三方包,你的其他選擇是使用json.MarshalIndent:
x := map[string]interface{}{"a": 1, "b": 2}
b, err := json.MarshalIndent(x, "", " ")
if err != nil {
fmt.Println("error:", err)
}
fmt.Print(string(b))
輸出:
{
"a": 1,
"b": 2
}
沒關係,我找到了一個:https://github.com/davecgh/go-spew
// import "github.com/davecgh/go-spew/spew"
x := map[string]interface{}{"a":1,"b":2}
spew.Dump(x)
會給出一個輸出:
(map[string]interface {}) (len=2) {
(string) (len=1) "a": (int) 1,
(string) (len=1) "b": (int) 2
}
I像[go-spew](https://github.com/davecgh/go-spew)。 – 2014-11-25 12:36:05
如果外部軟件包可以接受,請考慮[漂亮](http://godoc.org/github.com/kr/pretty#example-package)。 – Mark 2014-11-25 03:06:46