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 []Sentencefor 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 数组吗?
添加回答
举报
0/150
提交
取消