スライスに含まれる値を確認したい。どうすれば印刷できますか?
projects []Project
スライスに含まれる値を確認したい。どうすれば印刷できますか?
projects []Project
回答:
あなたは試すことができ%v
、%+v
または%#v
の動詞行くFMT:
fmt.Printf("%v", projects)
配列(またはここのスライス)にstruct
(のようにProject
)が含まれている場合、それらの詳細が表示されます。
より正確にするには%#v
、リテラルの場合と同様に、Go構文を使用してオブジェクトを印刷できます。
%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.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
戻り値:
a b
[a b]
ただし、このソリューションでは、先頭の角かっこは最初の値から失われ、末尾の角かっこは最後の値から失われることに注意してください。
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
戻り値:
a] [b
[[a] [b]]
詳細については、strings.Trim()のドキュメントを参照してください
fmt.Printf()
結構ですが、きれいな印刷パッケージを使用したい場合もあります。
import "github.com/kr/pretty"
pretty.Print(...)
(既存の回答にコメントするアカウントを作成しましたが、担当者が十分になるまでコメントできません)
入力に使用したのと同じ形式(["one"、 "two"、 "three"]など)でスライスの情報を表示する場合は、次のコード例を使用して、 :
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)
}
このコードは次のように生成および出力されます。
fmt.Println(projects)
?