@fnr maaf, tetapi peninjau mungkin merasa pertanyaan itu mudah diselesaikan oleh dokter. Saya telah memperbarui jawaban saya untuk menunjukkan bahwa itu tidak selalu jelas. Anda dapat meninggalkan pertanyaan Anda, itu pertanyaan yang valid.
VonC
2
@fnr - a -1 di situs ini berarti pertanyaan: "tidak menunjukkan upaya penelitian; tidak jelas atau tidak berguna". Jadi saya melihat Anda menandai pertanyaan Anda "pergi" dan "array" dan ingin tahu "bagaimana cara mencetak" mereka. Jika saya pergi ke Google.com dan mencari "pergi array tutorial bahasa pemrograman" Saya menemukan sejumlah sumber daya termasuk ini yang sepertinya mungkin membantu. Jadi jika ini membantu, itu menunjukkan Anda tidak banyak meneliti sebelum memposting. Jika ini tidak membantu, Anda perlu memanggil situs seperti ini yang Anda cari dan menjelaskan mengapa itu tidak membantu.
Mike
Jawaban:
171
Anda dapat mencoba %v, %+vatau %#vkata kerja dari go fmt :
fmt.Printf("%v", projects)
Jika array Anda (atau di sini slice ) berisi struct(like Project), Anda akan melihat detailnya.
Untuk lebih presisi, Anda dapat menggunakan %#vuntuk mencetak objek menggunakan sintaks Go, seperti 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
Untuk tipe dasar saja fmt.Println(projects)sudah cukup.
Catatan: untuk sepotong pointer, yaitu []*Project(daripada []Project), Anda lebih baik menentukan String()metode untuk menampilkan dengan tepat apa yang ingin Anda lihat (atau Anda hanya akan melihat alamat pointer).
Lihat contoh play.golang ini .
Bagaimana cara mendapatkan array dengan pemisah koma ??
Shoba
¯ \ _ (ツ) _ / ¯ Jika Anda menemukan solusi singkat, harap tambahkan sebagai jawaban untuk pertanyaan ini. Saya bertaruh itulah yang dicari kebanyakan orang.
Pylinux
4
Jika Anda hanya ingin melihat nilai larik tanpa tanda kurung, Anda dapat menggunakan kombinasi fmt.Sprint()danstrings.Trim()
a :=[]string{"a","b"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]"))
fmt.Print(a)
Pengembalian:
a b
[a b]
Ketahuilah bahwa dengan solusi ini, semua tanda kurung di depan akan hilang dari nilai pertama dan tanda kurung apa pun akan hilang dari nilai terakhir.
a :=[]string{"[a]","[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a),"[]")
fmt.Print(a)
Pengembalian:
a][b
[[a][b]]
Untuk info selengkapnya, lihat dokumentasi untuk string.Trim ()
(Membuat akun untuk mengomentari jawaban yang ada, tetapi saya tidak dapat berkomentar sampai saya memiliki cukup perwakilan)
Jika Anda ingin melihat informasi dalam Slice dalam format yang sama dengan yang Anda gunakan untuk mengetikkannya (beberapa seperti ["satu", "dua", "tiga"]), berikut adalah contoh kode yang menunjukkan cara melakukannya :
Selamat datang di Stack Overflow! Selama jawaban Anda memberikan kontribusi sesuatu yang baru pada topik, itu termasuk dalam bagian jawaban. Tidak perlu membenarkannya dengan mengatakan reputasi Anda terlalu rendah; posting Anda tepat di tempatnya :) Meskipun demikian, biasanya lebih disukai untuk menyertakan kode apa pun yang Anda gunakan secara langsung dalam jawaban daripada sebagai tautan ke situs lain. Jangan ragu untuk meninggalkan tautan, tetapi salin juga kode ke jawaban Anda. Terima kasih!
fmt.Println(projects)
?Jawaban:
Anda dapat mencoba
%v
,%+v
atau%#v
kata kerja dari go fmt :Jika array Anda (atau di sini slice ) berisi
struct
(likeProject
), Anda akan melihat detailnya.Untuk lebih presisi, Anda dapat menggunakan
%#v
untuk mencetak objek menggunakan sintaks Go, seperti literal:Untuk tipe dasar saja
fmt.Println(projects)
sudah cukup.Catatan: untuk sepotong pointer, yaitu
[]*Project
(daripada[]Project
), Anda lebih baik menentukanString()
metode untuk menampilkan dengan tepat apa yang ingin Anda lihat (atau Anda hanya akan melihat alamat pointer).Lihat contoh play.golang ini .
sumber
Untuk a
[]string
, Anda dapat menggunakanstrings.Join()
:sumber
Saya lebih suka
fmt.Printf("%+q", arr)
yang akan mencetakhttps://play.golang.org/p/XHfkENNQAKb
sumber
Jika Anda hanya ingin melihat nilai larik tanpa tanda kurung, Anda dapat menggunakan kombinasi
fmt.Sprint()
danstrings.Trim()
Pengembalian:
Ketahuilah bahwa dengan solusi ini, semua tanda kurung di depan akan hilang dari nilai pertama dan tanda kurung apa pun akan hilang dari nilai terakhir.
Pengembalian:
Untuk info selengkapnya, lihat dokumentasi untuk string.Trim ()
sumber
fmt.Printf()
baik-baik saja, tapi terkadang saya suka menggunakan paket cantik cetak .sumber
(Membuat akun untuk mengomentari jawaban yang ada, tetapi saya tidak dapat berkomentar sampai saya memiliki cukup perwakilan)
Jika Anda ingin melihat informasi dalam Slice dalam format yang sama dengan yang Anda gunakan untuk mengetikkannya (beberapa seperti ["satu", "dua", "tiga"]), berikut adalah contoh kode yang menunjukkan cara melakukannya :
https://play.golang.org/p/vOF6xZ__Otr
sumber
Anda dapat menggunakan paket Pretty Slice:
Kode ini akan menghasilkan dan mengeluarkan seperti ini:
Untuk lebih jelasnya, silakan baca: https://github.com/inancgumus/prettyslice
sumber