我正在使用Go语言,处理一个slice的reflect.Value表示。以下是我的代码:
slice := reflect.MakeSlice(typ, len, cap)
如果我想从slice
中获取第i个值,很简单:
v := slice.Index(i) // returns a reflect.Value
然而,我似乎找不到一种方法来设置第 i 个值。例如,如果我有一个映射 m
,那么 reflect.Value
有很多设置器方法:
m.SetMapIndex(key, value) // key and value have type reflect.Value
但是似乎对于切片来说没有相应的功能。我的一个想法是,也许从 slice.Index(i)
返回的值实际上是某种指针,因此调用 v := slice.Index(i); v.Set(newV)
可能会起作用?我不确定。有什么想法吗?
reflect
的问题。请查看上面链接的xmlutil
,以及其他编码包。它们应该会对你有所帮助。 - Luke