当我关注这个 golang blog post关于数组和 slice ,我试图将一个指向 slice 的指针传递给一个函数,该函数修改 slice header 中的底层len
属性:
func PtrSubtractOneFromLength(slicePtr *[]byte) {
slice := *slicePtr
*slicePtr = slice[0 : len(slice)-1]
}
当我尝试将其重构为:
func PtrSubtractOneFromLength(slicePtr *[]int) {
*slicePtr = *slicePtr[0 : len(*slicePtr)-1]
}
我收到这个错误
cannot slice slicePtr (type *[]int)
slice := *slicePtr
语句的神奇之处在哪里?
最佳答案
slice 表达式比解引用绑定(bind)更强。试试这个:
*slicePtr = (*slicePtr)[0 : len(*slicePtr)-1]
关于go - slice 指向 slice 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28786137/