如何获得切片底层值通过反射值



我阅读了反映文档,我有点困惑为什么它没有func (v Value) Slice() slice函数,从反映中获得底层值。

中保存切片的值。

是否有一种方便的方法从反射中获得底层切片。价值吗?

reflect.Value上没有Slice() []T方法,因为没有对所有切片类型有效的返回值。例如,Slice() []int只适用于int片,Slice() []string适用于字符串片,等等。Slice() []interface{}也不会工作,由于片是如何存储在内存中。

相反,您可以通过使用reflect.Value.Interface()方法和类型断言来获得底层片值:

使用例子:

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

相关内容

  • 没有找到相关文章

最新更新