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

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>),好了下面开始说正事:


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

}
func doOtherThing(sp []*widget){

}
###
//这种传入的是切片的地址,切片内存的是 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 {

   }
}

郑重声明:本站部分内容转载自网络,版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(QQ/微信153890879)修改或删除,多谢。