漂亮的印刷golang变量

Kok*_*zzu 33 pretty-print go

有什么样Rubyawesome_printGolang

例如在ruby中你可以写:

require 'ap'
x = {a:1,b:2} // also works for class
ap x
Run Code Online (Sandbox Code Playgroud)

输出将是:

{ 
  "a" => 1,
  "b" => 2
}
Run Code Online (Sandbox Code Playgroud)

我能找到的最接近的东西是 Printf("%#v", x)

Sim*_*ead 77

如果您的目标是避免导入第三方软件包,那么您的另一个选择是使用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))
Run Code Online (Sandbox Code Playgroud)

输出:

{
    "a": 1,
    "b": 2
}
Run Code Online (Sandbox Code Playgroud)

工作样本:http://play.golang.org/p/SNdn7DsBjy


Kok*_*zzu 17

没关系,我找到了一个:https://github.com/davecgh/go-spew

// import "github.com/davecgh/go-spew/spew"
x := map[string]interface{}{"a":1,"b":2}
spew.Dump(x)
Run Code Online (Sandbox Code Playgroud)

会给出一个输出:

(map[string]interface {}) (len=2) {
 (string) (len=1) "a": (int) 1,
 (string) (len=1) "b": (int) 2
}
Run Code Online (Sandbox Code Playgroud)


Rub*_*n S 17

如果您想要漂亮的彩色输出,您可以使用pp.

https://github.com/k0kubun/pp

import "github.com/k0kubun/pp"
...
pp.Print(m)
Run Code Online (Sandbox Code Playgroud)

预览