Ich möchte die Werte sehen, die in der Scheibe sind. Wie kann ich sie drucken?
projects []Project
Ich möchte die Werte sehen, die in der Scheibe sind. Wie kann ich sie drucken?
projects []Project
Antworten:
Sie können versuchen %v
, die %+v
oder %#v
Verben von go fmt :
fmt.Printf("%v", projects)
Wenn Ihr Array (oder hier Slice ) struct
(wie Project
) enthält , sehen Sie deren Details.
Für mehr Präzision können Sie %#v
das Objekt mit der Go-Syntax 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 Grundtypen fmt.Println(projects)
reicht das aus.
Hinweis: Für ein Stück Zeiger, dh []*Project
(anstelle von []Project
), ist es besser, eine String()
Methode zu definieren , um genau das anzuzeigen, was Sie sehen möchten (oder Sie sehen nur die Zeigeradresse).
Siehe dieses play.golang-Beispiel .
Für a []string
können Sie verwenden strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Ich bevorzuge fmt.Printf("%+q", arr)
welche drucken wird
["some" "values" "list"]
Wenn Sie nur die Werte eines Arrays ohne Klammern anzeigen möchten, können Sie eine Kombination aus fmt.Sprint()
und verwendenstrings.Trim()
a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
Kehrt zurück:
a b
[a b]
Beachten Sie jedoch, dass bei dieser Lösung alle führenden Klammern ab dem ersten Wert und alle nachfolgenden Klammern ab dem letzten Wert verloren gehen
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
Kehrt zurück:
a] [b
[[a] [b]]
Weitere Informationen finden Sie in der Dokumentation zu Strings.Trim ()
fmt.Printf()
ist in Ordnung, aber manchmal verwende ich gerne ein hübsches Druckpaket .
import "github.com/kr/pretty"
pretty.Print(...)
(Es wurde ein Konto erstellt, um eine vorhandene Antwort zu kommentieren, aber ich kann erst kommentieren, wenn ich genügend Mitarbeiter habe.)
Wenn Sie die Informationen in einem Slice in demselben Format anzeigen möchten, in dem Sie sie eingeben würden (einige wie ["eins", "zwei", "drei"]), finden Sie hier ein Codebeispiel, das zeigt, wie das geht ::
Sie können das Pretty Slice-Paket verwenden:
package main
import pretty "github.com/inancgumus/prettyslice"
func main() {
nums := []int{1, 9, 5, 6, 4, 8}
odds := nums[:3]
evens := nums[3:]
nums[1], nums[3] = 9, 6
pretty.Show("nums", nums)
pretty.Show("odds : nums[:3]", odds)
pretty.Show("evens: nums[3:]", evens)
}
Dieser Code wird wie folgt produziert und ausgegeben:
Weitere Informationen finden Sie unter: https://github.com/inancgumus/prettyslice
fmt.Println(projects)
?