golang的slice作为函数参数传值的坑
直接贴代码func sliceModify(slice []int) {
// slice = 88
slice = append(slice, 6)
}
func main() {
slice := []int{1, 2, 3, 4, 5}
sliceModify(slice)
fmt.Println(slice)
}
返回的没变,坑爹的,这个设计太那啥了,可以正确跑出效果的版本如下:
func sliceModify(slice *[]int) {
*slice = append(*slice, 6)
}
func main() {
slice :
= []int{1, 2, 3, 4, 5}
sliceModify(
&slice)
fmt.Println(slice)
}
页:
[1]