修复阵列替换中不正确引用的切片

时间:2015-09-24 20:48:37

标签: pointers go slice

以下go代码无法编译,因为(我相信)指针的引用方式存在错误。

特别是,错误消息是

arrServicesUserChoice

以下是代码的抽象和简化版本,会导致出现此错误消息。

prog.go:13: cannot use append((*x)[:remove], (*x)[remove + 1:]...) (type []int) as type *[]int in assignment

1 个答案:

答案 0 :(得分:2)

你在这里没有使用数组,你正在使用切片。通常,您不希望处理指向切片的指针,因为它可能会变得很笨拙,并且在极少数情况下需要指针。

要解决您的错误,请取消引用x

*x = append((*x)[:remove], (*x)[remove+1:]...)

但你可能应该直接使用切片值,因此不需要解除引用:

x := []int{11, 22, 33, 44, 55, 66, 77, 88, 99}