为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过reflect.Value获取切片底层价值

如何通过reflect.Value获取切片底层价值

Go
慕虎7371278 2021-11-08 19:18:14
我阅读了反射文档,我对为什么它没有一个func (v Value) Slice() slice函数有点困惑,该函数从一个包含切片的反射.值中获取底层值。有没有一种方便的方法可以从 reflect.Value 中获取底层切片?
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

没有Slice() []T方法 onreflect.Value因为没有对所有切片类型都有效的返回值。例如,Slice() []int仅适用于 int 切片、Slice() []string字符串切片等。由于切片在 memory 中的存储方式,它Slice() []interface{}也不起作用。


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


用法示例:


slice, ok := value.Interface().([]SliceElemType)

if !ok {

    panic("value not a []MySliceType")

}


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 280 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信