我收到的接口基本上是一个切片。现在我想将其转换为指向该切片的指针。问题在于,我只有切片本身或指向接口的指针。
我可以很容易地通过代码示例来说明:
func main(){
model := []int{1,2,3,4,5,6,7,8,10,11,133123123123}
method(model)
}
func method(model interface{}){
fmt.Println(reflect.TypeOf(model)) // this is of type []int
fmt.Println(reflect.TypeOf(&model)) // this is of type *interface{}
}
我需要的是这种类型:
fmt.Println(reflect.TypeOf(result)) // this should be type *[]int
我只能在运行时知道类型,因此无法仅使用&(model.([]int))
有没有一种方法可以使用golang的反射来接收它?这里 'int' 类型实际上并不重要,重要的是它是指向切片的指针。*[]interface{}
也可以。
编辑:
为了使问题更清晰,我应该补充说明:我对切片的数据不感兴趣,但只对获取相同类型切片的指针感兴趣(基本上可以为空)。因此 James Henstridge 的答案完全适用。