Ich möchte die Werte sehen, die in den Arrays sind. Wie kann ich sie ausdrucken?
projects []Project
Sie können die Verben %v
, %+v
oder %#v
von go fmt versuchen:
fmt.Printf("%v", projects)
Wenn Ihr Array (oder hier Slice ) struct
(wie Project
) enthält, werden deren Details angezeigt.
Für mehr Genauigkeit können Sie %#v
verwenden, um das Objekt mit der Go-Syntax zu drucken, wie bei einem Literal:
%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
Für Basistypen reicht fmt.Println(projects)
aus.
Hinweis: Für ein Stück Zeiger, dh []*Project
(anstelle von []Project
), sollten Sie besser eine String()
-Methode definieren, um genau das anzuzeigen, was Sie sehen möchten (oder nur die Zeigeradresse).
Siehe dieses play.golang Beispiel .
Für einen []string
können Sie strings.Join()
verwenden:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Wenn Sie nur die Werte eines Arrays ohne Klammern anzeigen möchten, können Sie eine Kombination aus fmt.Sprint()
und strings.Trim()
verwenden.
a := []string{"a", "b"}
fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]")
fmt.Printf(a)
Kehrt zurück:
a b
[a b]
Beachten Sie jedoch, dass bei dieser Lösung alle führenden Klammern beim ersten Wert und alle nachfolgenden Klammern beim letzten Wert verloren gehen
a := []string{"[a]", "[b]"}
fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]")
fmt.Printf(a)
Kehrt zurück:
a] [b
[[a] [b]]
Weitere Informationen finden Sie in der Dokumentation zu strings.Trim ()
Ich bevorzuge fmt.Printf("%+q\n", arr)
was gedruckt wird
["some" "values" "list"]
fmt.Printf()
ist in Ordnung, aber manchmal benutze ich pretty print package .
import "github.com/kr/pretty"
pretty.Print(...)