Golang-как печатать значения массивов?
Я хочу видеть значения, которые находятся в массивах. Как я могу их напечатать?
projects []Project
3 ответа:
вы можете попробовать
%v
,%+v
или%#v
команд go fmt:fmt.Printf("%v", projects)
если Ваш массив (или вот фрагмент) содержит
struct
(какProject
), вы увидите их детали.
Для большей точности, вы можете использовать%#v
чтобы напечатать объект с помощью Go-синтаксиса, как для литерала:%v the value in a default format. when printing structs, the plus flag (%+v) adds field names %#v a Go-syntax representation of the value
для основных типов,
fmt.Println(projects)
достаточно.
Примечание: для фрагмента указателей, то есть
[]*Project
(вместо[]Project
), вам лучше определить aString()
метод для того, чтобы отобразить именно то, что вы хотите видеть (или вы увидите только адрес указателя).
Смотрите это играть.голанг пример.
на
[]string
, вы можете использоватьstrings.Join()
:s := []string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, ", ")) // output: foo, bar, baz
если вы просто хотите увидеть значения массива без скобок, вы можете использовать комбинацию
fmt.Sprint()
иstrings.Trim()
a := []string{"a", "b"} fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]") fmt.Printf(a)
возвращает:
a b [a b]
имейте в виду, что с этим решением любые ведущие скобки будут потеряны из первого значения, а любые конечные скобки будут потеряны из последнего значения
a := []string{"[a]", "[b]"} fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]") fmt.Printf(a)
возвращает:
a] [b [[a] [b]]
для получения дополнительной информации см. документацию для строки.Отделка()