有一个整数 slice 和一个接受指向 slice 的指针作为参数的函数。
mainSlice := []int{0,8,5,4,6,9,7,1,2,3,6,4,5,7}
doSmthWithSlice(mainSlice)
有没有什么方法可以使用指向 slice 的指针来获取 slice 项,但无需将指针指向的值复制到新 slice 中?
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
}
谢谢
附言
很抱歉提出这种原始问题。我是新手
最佳答案
操作顺序很重要:您需要先取消引用指针,然后再对其进行索引。
func doSmthWithSlice(slPtr *[]int) {
(*slcPtr)[3] = 777
}
没有括号,索引运算符应用于 slice 指针;无效操作。
关于pointers - 如何使用指向该 slice 的指针获取 slice 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42706786/