web-dev-qa-db-fra.com

Golang - Comment imprimer les valeurs des tableaux?

Je veux voir les valeurs qui sont dans les tableaux. Comment puis-je les imprimer?

projects []Project  
58
fnr

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 .

109
VonC

Pour un []string, vous pouvez utiliser strings.Join() :

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

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 ()

3
Eddie Curtis

Je préfère fmt.Printf("%+q\n", arr) qui va imprimer

["some" "values" "list"]

https://play.golang.org/p/XHfkENNQAKb

1
Pylinux

fmt.Printf() c'est bien, mais parfois j'aime bien utiliser pretty print package .

import "github.com/kr/pretty"
pretty.Print(...)
0
akond