配列にある値を見たいです。どうすれば印刷できますか?
projects []Project
go fmt の%v
、%+v
、または%#v
動詞を試すことができます。
fmt.Printf("%v", projects)
配列(または ここではスライス )にstruct
(Project
など)が含まれている場合、その詳細が表示されます。
より正確にするには、リテラルとして、Go-syntaxを使用して%#v
を使用してオブジェクトを印刷できます。
%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
基本型の場合、fmt.Println(projects)
で十分です。
注:ポインターのスライス、つまり[]*Project
([]Project
の代わり)の場合は、String()
メソッドを定義して、見たいものを正確に表示することをお勧めします(または、ポインタアドレスのみが表示されます)。
こちらをご覧ください play.golangの例 。
[]string
の場合、 strings.Join()
を使用できます。
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
カッコなしで配列の値を表示するだけの場合は、fmt.Sprint()
とstrings.Trim()
の組み合わせを使用できます
a := []string{"a", "b"}
fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]")
fmt.Printf(a)
返却値:
a b
[a b]
ただし、このソリューションでは、最初の値から先頭の括弧が失われ、最後の値から末尾の括弧が失われることに注意してください
a := []string{"[a]", "[b]"}
fmt.Printf(strings.Trim(fmt.Sprintf(a), "[]")
fmt.Printf(a)
返却値:
a] [b
[[a] [b]]
詳細については、 strings.Trim() のドキュメントを参照してください
fmt.Printf()
は問題ありませんが、時々 pretty print package を使用したいことがあります。
import "github.com/kr/pretty"
pretty.Print(...)