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

Как распечатать значения массивов

Я хочу видеть значения, которые находятся в массивах. Как я могу их распечатать?

projects []Project  
4b9b3361

Ответ 1

Вы можете попробовать %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), вам лучше определить метод String(), чтобы отобразить то, что вы хотите видеть (или вы увидите только адрес указателя).
См. Этот пример play.golang.

Ответ 2

Для []string вы можете использовать strings.Join():

s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz

Ответ 4

Если вы просто хотите видеть значения массива без скобок, вы можете использовать комбинацию 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]]

Для получения дополнительной информации см. документацию для strings.Trim()