为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能跨越 *[]Struct?

为什么不能跨越 *[]Struct?

芜湖不芜 2021-06-27 02:11:00
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 数组吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信