有一片int和一个接受指向切片的指针作为参数的函数。
mainSlice := []int{0,8,5,4,6,9,7,1,2,3,6,4,5,7}
doSmthWithSlice(mainSlice)
有没有办法使用指向切片的指针来获取切片项,但是没有复制指针指向新切片的值?
func doSmthWithSlice(slcPtr *[]int) {
*slcPtr[3] = 777 // this does NOT works, because *[]int does not support indexing
// Don't want to implement it
// like this
newSlice := *slcPtr
newSlice[3] = 777
*slcPtr = newSlice
}
谢谢你
附:
很抱歉提出这种原始问题。我是新手
答案 0 :(得分:2)
操作顺序很重要:您需要首先取消引用指针,然后将其编入索引。
func doSmthWithSlice(slPtr *[]int) {
(*slcPtr)[3] = 777
}
没有括号,索引运算符适用于切片指针;无效的操作。