Dilimdeki değerleri görmek istiyorum. Bunları nasıl yazdırabilirim?
projects []Project
Dilimdeki değerleri görmek istiyorum. Bunları nasıl yazdırabilirim?
projects []Project
Yanıtlar:
Deneyebilirsin %v
, %+v
ya %#v
ait fiiller go fmt :
fmt.Printf("%v", projects)
Diziniz (veya burada dilim ) struct
(beğenmek Project
) içeriyorsa , ayrıntılarını göreceksiniz.
Daha fazla kesinlik %#v
için, değişmez değerde olduğu gibi, nesneyi Go sözdizimini kullanarak yazdırmak için kullanabilirsiniz :
%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
Temel tipler fmt.Println(projects)
için yeterlidir.
Not: bir işaretçi dilimi için, yani []*Project
(yerine []Project
), String()
görmek istediğiniz şeyi tam olarak görüntülemek için bir yöntem tanımlamanız daha iyidir (veya yalnızca işaretçi adresini göreceksiniz).
Bu play.golang örneğine bakın .
Bir için []string
şunları kullanabilirsiniz strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Bir dizinin değerlerini köşeli parantez olmadan görmek istiyorsanız, bir fmt.Sprint()
vestrings.Trim()
a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
İadeler:
a b
[a b]
Ancak bu çözümle baştaki parantezlerin ilk değerden ve sondaki parantezlerin son değerden itibaren kaybolacağını unutmayın.
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
İadeler:
a] [b
[[a] [b]]
Daha fazla bilgi için dizelerle ilgili belgelere bakın.
fmt.Printf()
sorun değil, ancak bazen oldukça baskı paketi kullanmayı seviyorum .
import "github.com/kr/pretty"
pretty.Print(...)
Bir dilimdeki bilgileri yazmak için kullandığınız formatla aynı biçimde görüntülemek istiyorsanız (buna benzer bir şey ["one", "two", "three"]
), işte bunun nasıl yapılacağını gösteren bir kod örneği:
package main
import (
"fmt"
"strings"
)
func main() {
test := []string{"one", "two", "three"} // The slice of data
semiformat := fmt.Sprintf("%q\n", test) // Turn the slice into a string that looks like ["one" "two" "three"]
tokens := strings.Split(semiformat, " ") // Split this string by spaces
fmt.Printf(strings.Join(tokens, ", ")) // Join the Slice together (that was split by spaces) with commas
}
Pretty Slice adında bir paket yazdım. Dilimleri ve destek dizilerini vb. Görselleştirmek için kullanabilirsiniz.
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)
}
Bu kod şu şekilde üretilecek ve çıkacaktır:
Daha fazla ayrıntı için lütfen okuyun: https://github.com/inancgumus/prettyslice
fmt.Println(projects)
?