golang的slice作为函数参数传值的坑

时间:2014-05-03 23:17:56   收藏:0   阅读:393

直接贴代码

bubuko.com,布布扣
func sliceModify(slice []int) {
    // slice[0] = 88
    slice = append(slice, 6)
}
func main() {
    slice := []int{1, 2, 3, 4, 5}
    sliceModify(slice)
    fmt.Println(slice)
}
bubuko.com,布布扣

 

返回的没变,坑爹的,这个设计太那啥了,可以正确跑出效果的版本如下:

bubuko.com,布布扣
func sliceModify(slice *[]int) {
    *slice = append(*slice, 6)
}
func main() {
    slice := []int{1, 2, 3, 4, 5}
    sliceModify(&slice)
    fmt.Println(slice)
}
bubuko.com,布布扣

 

golang的slice作为函数参数传值的坑,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!