Je veux voir les valeurs qui sont dans la tranche. Comment puis-je les imprimer?
projects []Project
Je veux voir les valeurs qui sont dans la tranche. Comment puis-je les imprimer?
projects []Project
Réponses:
Vous pouvez essayer %v
, %+v
ou des %#v
verbes 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 %#v
pour imprimer l'objet en utilisant 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)
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 .
Pour un []string
, vous pouvez utiliser strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Je préfère fmt.Printf("%+q", arr)
lequel imprimera
["some" "values" "list"]
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.
fmt.Printf()
c'est bien, mais parfois j'aime utiliser un joli package d'impression .
import "github.com/kr/pretty"
pretty.Print(...)
(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 :
Vous pouvez utiliser le package Pretty Slice:
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)
}
Ce code va produire et sortir comme celui-ci:
Pour plus de détails, veuillez lire: https://github.com/inancgumus/prettyslice
fmt.Println(projects)
?