结构体指针切片和结构体数组指针的区别?

type Widget struct {
    id    int
    attrs []string
}
//下面两种传参有什么区别?
func doSomThing(ss *[]Widget){

}
func doOtherThing(sp []*widget){

}
阅读 5.8k
3 个回答
//这种传入的是切片的地址,切片内存的是 widget 的值。
func doSomThing(ss *[]Widget){

}
//这种传入的是切片的拷贝,切片内存的是 widget 的地址
func doOtherThing(sp []*widget){

}

一个是传地址,一个传切片数组类型

type Widget struct {
    id    int
    attrs []string
}



// type slicePtr *[]Widget
func doSomThing(ss *[]Widget){
   // 循环
   for _, s := range *ss {

   }
}

// 普通的slice
func doOtherThing(ss []*widget){
   // 循环
   for _, s := range ss {

   }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏