Je veux voir les valeurs qui sont dans les tableaux. Comment puis-je les imprimer?
projects []Project
Vous pouvez essayer les verbes %v
, %+v
ou %#v
de go fmt :
fmt.Printf("%v", projects)
Si votre tableau (ou ici slice ) contient struct
(comme Project
), vous verrez leurs détails.
Pour plus de précision, vous pouvez utiliser %#v
pour imprimer l'objet à l'aide de la syntaxe Go, comme pour un littéral:
%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
Pour les types de base, fmt.Println(projects)
suffit.
Remarque: pour une tranche de pointeurs, c'est-à-dire []*Project
(au lieu de []Project
), il est préférable de définir une méthode String()
afin d'afficher exactement ce que vous voulez voir (ou vous verrez uniquement l'adresse du pointeur).
Voir cet exemple play.golang .
Pour un []string
, vous pouvez utiliser strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Si vous voulez juste voir les valeurs d'un tableau sans crochets, vous pouvez utiliser une combinaison de fmt.Sprint()
et strings.Trim()
a := []string{"a", "b"}
fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]")
fmt.Printf(a)
Résultats:
a b
[a b]
Sachez cependant qu'avec cette solution, tous les crochets principaux seront perdus à partir de la première valeur et les crochets de fin seront perdus à partir de la dernière valeur.
a := []string{"[a]", "[b]"}
fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]")
fmt.Printf(a)
Résultats:
a] [b
[[a] [b]]
Pour plus d'informations, voir la documentation de strings.Trim ()
Je préfère fmt.Printf("%+q\n", arr)
qui va imprimer
["some" "values" "list"]
fmt.Printf()
c'est bien, mais parfois j'aime bien utiliser pretty print package .
import "github.com/kr/pretty"
pretty.Print(...)