我在 Go 中,使用切片的 reflect.Value 表示。我有以下内容:
slice := reflect.MakeSlice(typ, len, cap)
如果我想从中获取第 i 个值slice
,很简单:
v := slice.Index(i) // returns a reflect.Value
但是,我似乎找不到设置第 i 个值的方法。reflect.Value
有很多 setter 方法,例如,如果我有一个 map, m
,以下是可能的:
m.SetMapIndex(key, value) // key and value have type reflect.Value
但似乎没有切片的等价物。我的一个想法是,也许返回的值slice.Index(i)
实际上是一个指针,所以调用v := slice.Index(i); v.Set(newV)
会起作用吗?我不确定。想法?