Подтвердить что ты не робот

Довольно печатная голанговая переменная

Есть ли что-то вроде Ruby awesome_print в Golang?

Например, в рубине вы можете написать:

require 'ap'
x = {a:1,b:2} // also works for class
ap x

вывод будет:

{ 
  "a" => 1,
  "b" => 2
}

ближайшая вещь, которую я мог найти, - Printf("%#v", x)

4b9b3361

Ответ 1

Если ваша цель - не импортировать сторонний пакет, другой вариант - использовать 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
}

Рабочий пример: http://play.golang.org/p/SNdn7DsBjy

Ответ 2

Nevermind, я нашел один: 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
}