【发布时间】:2013-08-09 13:28:31
【问题描述】:
我在 Go 中,使用切片的 reflect.Value 表示。我有以下内容:
slice := reflect.MakeSlice(typ, len, cap)
如果我想从slice获取第i个值,很简单:
v := slice.Index(i) // returns a reflect.Value
但是,我似乎找不到设置第 i 个值的方法。 reflect.Value 有很多 setter 方法,例如,如果我有一个地图,m,以下是可能的:
m.SetMapIndex(key, value) // key and value have type reflect.Value
但似乎没有切片的等价物。我的一个想法是,也许从slice.Index(i) 返回的值实际上是一个指针,所以调用v := slice.Index(i); v.Set(newV) 会起作用吗?我不知道。想法?
【问题讨论】:
标签: reflection go slice