@fnr desculpe, mas os revisores provavelmente acharam que a questão foi facilmente resolvida pelo doc. Eu atualizei minha resposta para mostrar que nem sempre é tão óbvio. Você pode deixar sua pergunta, é válida.
VonC
2
@fnr - a -1 neste site significa a pergunta: "não mostra esforço de pesquisa; não está claro ou não é útil". Então, vejo que você marcou sua pergunta como "ir" e "matrizes" e deseja saber "como imprimi-los". Se eu acessar o Google.com e pesquisar "ir para matrizes de tutoriais de linguagem de programação", encontro uma série de recursos, incluindo este, que parece que pode ajudar. Então, se isso ajudar, mostra que você não pesquisou muito antes de postar. Se isso não ajudar, você precisa chamar sites como esse que pesquisou e explicar por que não foram úteis.
Mike
Respostas:
171
Você pode tentar a %v, %+vou %#vverbos de fmt go :
fmt.Printf("%v", projects)
Se seu array (ou fatia aqui ) contém struct(like Project), você verá seus detalhes.
Para obter mais precisão, você pode usar %#vpara imprimir o objeto usando a sintaxe Go, como para um literal:
%v the valuein a default format.when printing structs, the plus flag (%+v) adds field names
%#v a Go-syntax representation of the value
Para tipos básicos, fmt.Println(projects)basta.
Nota: para uma fatia de ponteiros, isto é []*Project(em vez de []Project), é melhor definir um String()método para exibir exatamente o que você deseja ver (ou verá apenas o endereço do ponteiro).
Veja este exemplo play.golang .
¯ \ _ (ツ) _ / ¯ Se você encontrar uma solução curta, adicione-a como uma resposta a esta pergunta. Aposto que é isso que a maioria das pessoas está procurando.
Pylinux
4
Se você quiser apenas ver os valores de uma matriz sem colchetes, você pode usar uma combinação de fmt.Sprint()estrings.Trim()
a :=[]string{"a","b"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]"))
fmt.Print(a)
Retorna:
a b
[a b]
Esteja ciente de que com esta solução quaisquer colchetes iniciais serão perdidos do primeiro valor e quaisquer colchetes finais serão perdidos do último valor
a :=[]string{"[a]","[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]")
fmt.Print(a)
Retorna:
a][b
[[a][b]]
Para obter mais informações, consulte a documentação de strings.Trim ()
(Criou uma conta para comentar sobre uma resposta existente, mas não posso comentar até que tenha representante suficiente)
Se você deseja visualizar as informações em um Slice no mesmo formato que usaria para digitá-lo (alguns como ["um", "dois", "três"]), aqui está um exemplo de código que mostra como fazer isso :
Bem-vindo ao Stack Overflow! Contanto que sua resposta contribua com algo novo para o tópico, ela pertence à seção de respostas. Não há necessidade de justificar dizendo que sua repetição é muito baixa; sua postagem está exatamente onde pertence :) Dito isso, geralmente é preferível incluir qualquer código que você esteja usando diretamente na resposta, em vez de como um link para outro site. Sinta-se à vontade para deixar o link, mas copie o código em sua resposta também. Obrigado!
fmt.Println(projects)
?Respostas:
Você pode tentar a
%v
,%+v
ou%#v
verbos de fmt go :Se seu array (ou fatia aqui ) contém
struct
(likeProject
), você verá seus detalhes.Para obter mais precisão, você pode usar
%#v
para imprimir o objeto usando a sintaxe Go, como para um literal:Para tipos básicos,
fmt.Println(projects)
basta.Nota: para uma fatia de ponteiros, isto é
[]*Project
(em vez de[]Project
), é melhor definir umString()
método para exibir exatamente o que você deseja ver (ou verá apenas o endereço do ponteiro).Veja este exemplo play.golang .
fonte
Para
[]string
, você pode usarstrings.Join()
:fonte
Eu prefiro
fmt.Printf("%+q", arr)
qual vai imprimirhttps://play.golang.org/p/XHfkENNQAKb
fonte
Se você quiser apenas ver os valores de uma matriz sem colchetes, você pode usar uma combinação de
fmt.Sprint()
estrings.Trim()
Retorna:
Esteja ciente de que com esta solução quaisquer colchetes iniciais serão perdidos do primeiro valor e quaisquer colchetes finais serão perdidos do último valor
Retorna:
Para obter mais informações, consulte a documentação de strings.Trim ()
fonte
fmt.Printf()
está bem, mas às vezes eu gosto de usar o pacote de impressão bonita .fonte
(Criou uma conta para comentar sobre uma resposta existente, mas não posso comentar até que tenha representante suficiente)
Se você deseja visualizar as informações em um Slice no mesmo formato que usaria para digitá-lo (alguns como ["um", "dois", "três"]), aqui está um exemplo de código que mostra como fazer isso :
https://play.golang.org/p/vOF6xZ__Otr
fonte
Você pode usar o pacote Pretty Slice:
Este código irá produzir e dar saída como este:
Para mais detalhes, leia: https://github.com/inancgumus/prettyslice
fonte