Reflection 如何通过reflect.value获取切片基础值

Reflection 如何通过reflect.value获取切片基础值,reflection,go,Reflection,Go,我读了,我有点困惑为什么它没有func(v Value)Slice()Slice函数,该函数用于从保存切片的reflect.Value中获取基础值 是否有一种方便的方法从reflect.Value获取底层切片 在reflect.Value上没有Slice()[]T方法,因为没有对所有切片类型有效的返回值。例如,Slice() 相反,您可以通过使用以下方法和: 用法示例: slice, ok := value.Interface().([]SliceElemType) if !ok { p

我读了,我有点困惑为什么它没有
func(v Value)Slice()Slice
函数,该函数用于从保存切片的reflect.Value中获取基础值

是否有一种方便的方法从reflect.Value获取底层切片

reflect.Value
上没有
Slice()[]T
方法,因为没有对所有切片类型有效的返回值。例如,
Slice()

相反,您可以通过使用以下方法和:

用法示例:

slice, ok := value.Interface().([]SliceElemType)
if !ok {
    panic("value not a []MySliceType")
}

@mh cbon:OP正在寻找一个Slice方法,该方法返回底层类型的切片,有点像
Bytes()[]Bytes
reflect.Value
上的
Slice
方法返回的
Value
不是原始类型。我在回答中已经澄清了这一点。我认为这个回答有误导性,应该澄清的是,reflect提供的功能确实处理切片,但由于与类型系统相关的原因,没有诸如
slice()[]
这样的快捷功能,而是一个功能齐全的api。依我拙见