@fnr désolé, mais les critiques ont probablement estimé que la question était facilement résolue par le doc. J'ai mis à jour ma réponse pour montrer que ce n'est pas toujours aussi évident. Vous pouvez laisser votre question, elle est valide.
VonC
2
@fnr - un -1 sur ce site signifie la question: "ne montre pas l'effort de recherche; il n'est pas clair ou inutile". Donc je vois que vous avez tagué votre question "go" et "arrays" et que vous voulez savoir "comment les imprimer". Si je vais sur Google.com et que je recherche "aller dans les tableaux de didacticiels de langage de programmation", je trouve un certain nombre de ressources, y compris celle-ci, qui semble que cela pourrait aider. Donc, si cela vous aide, cela montre que vous n'avez pas beaucoup recherché avant de publier. Si cela ne vous aide pas, vous devez appeler les sites comme celui que vous avez recherché et expliquer pourquoi cela n'a pas été utile.
Mike
Réponses:
171
Vous pouvez essayer %v, %+vou des %#vverbes de fmt go :
fmt.Printf("%v", projects)
Si votre tableau (ou ici slice ) contient struct(like Project), vous verrez leurs détails.
Pour plus de précision, vous pouvez utiliser %#vpour imprimer l'objet en utilisant la syntaxe Go, comme pour un littéral:
%v the valuein 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)c'est suffisant.
Remarque: pour une tranche de pointeurs, c'est-à-dire []*Project(au lieu de []Project), il vaut mieux définir une String()méthode afin d'afficher exactement ce que vous voulez voir (ou vous ne verrez que l'adresse du pointeur).
Voir cet exemple play.golang .
Comment obtenir un tableau avec un séparateur par virgule?
Shoba
¯ \ _ (ツ) _ / ¯ Si vous trouvez une solution courte, veuillez l'ajouter comme réponse à cette question. Je parie que c'est ce que recherchent la plupart des gens.
Pylinux
4
Si vous voulez simplement voir les valeurs d'un tableau sans crochets, vous pouvez utiliser une combinaison de fmt.Sprint()etstrings.Trim()
a :=[]string{"a","b"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]"))
fmt.Print(a)
Retour:
a b
[a b]
Sachez cependant qu'avec cette solution, tous les crochets de début seront perdus à partir de la première valeur et tous les crochets de fin seront perdus à partir de la dernière valeur
a :=[]string{"[a]","[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]")
fmt.Print(a)
Retour:
a][b
[[a][b]]
Pour plus d'informations, consultez la documentation relative aux chaînes.
(J'ai créé un compte pour commenter une réponse existante, mais je ne peux pas commenter tant que j'ai pas assez de représentants)
Si vous souhaitez afficher les informations dans une tranche dans le même format que vous utiliseriez pour la saisir (certaines comme ["un", "deux", "trois"]), voici un exemple de code montrant comment procéder :
Bienvenue dans Stack Overflow! Tant que votre réponse apporte quelque chose de nouveau au sujet, elle appartient à la section des réponses. Il n'est pas nécessaire de le justifier en disant que votre représentant est trop bas; votre message est à sa place :) Cela étant dit, il est généralement préférable d'inclure le code que vous utilisez directement dans la réponse plutôt que comme un lien vers un autre site. N'hésitez pas à laisser le lien, mais copiez également le code dans votre réponse. Merci!
fmt.Println(projects)
?Réponses:
Vous pouvez essayer
%v
,%+v
ou des%#v
verbes de fmt go :Si votre tableau (ou ici slice ) contient
struct
(likeProject
), vous verrez leurs détails.Pour plus de précision, vous pouvez utiliser
%#v
pour imprimer l'objet en utilisant la syntaxe Go, comme pour un littéral:Pour les types de base,
fmt.Println(projects)
c'est suffisant.Remarque: pour une tranche de pointeurs, c'est-à-dire
[]*Project
(au lieu de[]Project
), il vaut mieux définir uneString()
méthode afin d'afficher exactement ce que vous voulez voir (ou vous ne verrez que l'adresse du pointeur).Voir cet exemple play.golang .
la source
Pour un
[]string
, vous pouvez utiliserstrings.Join()
:la source
Je préfère
fmt.Printf("%+q", arr)
lequel imprimerahttps://play.golang.org/p/XHfkENNQAKb
la source
Si vous voulez simplement voir les valeurs d'un tableau sans crochets, vous pouvez utiliser une combinaison de
fmt.Sprint()
etstrings.Trim()
Retour:
Sachez cependant qu'avec cette solution, tous les crochets de début seront perdus à partir de la première valeur et tous les crochets de fin seront perdus à partir de la dernière valeur
Retour:
Pour plus d'informations, consultez la documentation relative aux chaînes.
la source
fmt.Printf()
c'est bien, mais parfois j'aime utiliser un joli package d'impression .la source
(J'ai créé un compte pour commenter une réponse existante, mais je ne peux pas commenter tant que j'ai pas assez de représentants)
Si vous souhaitez afficher les informations dans une tranche dans le même format que vous utiliseriez pour la saisir (certaines comme ["un", "deux", "trois"]), voici un exemple de code montrant comment procéder :
https://play.golang.org/p/vOF6xZ__Otr
la source
Vous pouvez utiliser le package Pretty Slice:
Ce code va produire et sortir comme celui-ci:
Pour plus de détails, veuillez lire: https://github.com/inancgumus/prettyslice
la source