http://play.golang.org/p/jdWZ9boyrh
このエラーが発生しています
prog.go:29: invalid receiver type *[]Sentence ([]Sentence is an unnamed type)
prog.go:30: cannot range over S (type *[]Sentence)
[process exited with non-zero status]
関数が構造体配列を受信しようとしたとき。
名前のない型とはどういう意味ですか? なぜ名前を付けられないのですか?関数の外で名前を付けて、名前を付けて引数として渡すこともできます。
それは動作しません。[]Sentence を引数として渡して、必要な問題を解決しました。しかし、それらを引数として渡すときは、新しいコピーを返さなければなりませんでした。
関数が構造体配列を受け取るだけで、何も返さなくて済むようになればいいと思います。
以下のように:
func (S *[]Sentence)MarkC() {
for _, elem := range S {
elem.mark = "C"
}
}
var arrayC []Sentence
for i:=0; i<5; i++ {
var new_st Sentence
new_st.index = i
arrayC = append(arrayC, new_st)
}
//MarkC(arrayC)
//fmt.Println(arrayC)
//Expecting [{0 C} {1 C} {2 C} {3 C} {4 C}]
//but not working
[]Sentenceでも機能しません。
関数に Struct 配列を受信させる方法はありますか?