@fnr извините, но рецензенты, вероятно, посчитали, что вопрос был легко решен документом. Я обновил свой ответ, чтобы показать, что это не всегда так очевидно. Вы можете оставить свой вопрос, он верный.
VonC
2
@fnr - -1 на этом сайте означает вопрос: «не показывает исследовательских усилий; это неясно или бесполезно». Итак, я вижу, вы пометили свой вопрос «перейти» и «массивы» и хотите знать, «как их распечатать». Если я захожу на Google.com и ищу «массивы руководств по языку программирования», я нахожу ряд ресурсов, включая этот, который, похоже, может помочь. Так что, если это действительно помогает, это показывает, что вы не очень много исследовали перед публикацией. Если это не помогает, вам нужно назвать такие сайты, которые вы искали, и объяснить, почему это не помогло.
Майк
Ответы:
171
Вы можете попробовать %v, %+vили %#vглаголы go fmt :
fmt.Printf("%v", projects)
Если ваш массив (или здесь срез ) содержит struct(например Project), вы увидите их детали.
Для большей точности вы можете использовать %#vдля печати объекта с использованием синтаксиса Go, как для литерала:
%v the valuein 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 .
¯ \ _ (ツ) _ / ¯ Если вы найдете краткое решение, добавьте его в качестве ответа на этот вопрос. Бьюсь об заклад, это то, что ищет большинство людей.
Pylinux 07
4
Если вы просто хотите увидеть значения массива без скобок, вы можете использовать комбинацию fmt.Sprint()иstrings.Trim()
a :=[]string{"a","b"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]"))
fmt.Print(a)
Возврат:
a b
[a b]
Имейте в виду, что с этим решением любые ведущие скобки будут потеряны из первого значения, а любые конечные скобки будут потеряны из последнего значения.
a :=[]string{"[a]","[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]")
fmt.Print(a)
Возврат:
a][b
[[a][b]]
Для получения дополнительной информации см. Документацию для strings.Trim ()
Если вы хотите просмотреть информацию в срезе в том же формате, который вы использовали бы для ее ввода (что-то вроде ["one", "two", "three"]), вот пример кода, показывающий, как это сделать:
package main
import("fmt""strings")
func main(){
test :=[]string{"one","two","three"}// The slice of data
semiformat := fmt.Sprintf("%q\n", test)// Turn the slice into a string that looks like ["one" "two" "three"]
tokens := strings.Split(semiformat," ")// Split this string by spaces
fmt.Printf(strings.Join(tokens,", "))// Join the Slice together (that was split by spaces) with commas}
fmt.Println(projects)
?Ответы:
Вы можете попробовать
%v
,%+v
или%#v
глаголы go fmt :Если ваш массив (или здесь срез ) содержит
struct
(напримерProject
), вы увидите их детали.Для большей точности вы можете использовать
%#v
для печати объекта с использованием синтаксиса Go, как для литерала:Для основных типов этого
fmt.Println(projects)
достаточно.Примечание: для части указателей, то есть
[]*Project
(вместо[]Project
), вам лучше определитьString()
метод, чтобы отображать именно то, что вы хотите видеть (или вы увидите только адрес указателя).См. Этот пример play.golang .
источник
Для a
[]string
вы можете использоватьstrings.Join()
:источник
Я предпочитаю
fmt.Printf("%+q", arr)
печататьhttps://play.golang.org/p/XHfkENNQAKb
источник
Если вы просто хотите увидеть значения массива без скобок, вы можете использовать комбинацию
fmt.Sprint()
иstrings.Trim()
Возврат:
Имейте в виду, что с этим решением любые ведущие скобки будут потеряны из первого значения, а любые конечные скобки будут потеряны из последнего значения.
Возврат:
Для получения дополнительной информации см. Документацию для strings.Trim ()
источник
fmt.Printf()
это нормально, но иногда мне нравится использовать красивый пакет для печати .источник
Если вы хотите просмотреть информацию в срезе в том же формате, который вы использовали бы для ее ввода (что-то вроде
["one", "two", "three"]
), вот пример кода, показывающий, как это сделать:Перейти на игровую площадку
источник
Я написал пакет под названием Pretty Slice. Вы можете использовать его для визуализации срезов, их вспомогательных массивов и т. Д.
Этот код будет производить и выводить как этот:
Подробнее читайте: https://github.com/inancgumus/prettyslice.
источник