要获得任何切片的长度,我使用reflect.ValueOf(slice).Len(). 要设置任何切片的长度,我使用reflect.ValueOf(&slice).Elem().SetLen(n).
我的结构中有一个类型的字段reflect.Value,并且该值设置为,reflect.ValueOf(&slice)以便我可以更改切片。但现在我无法获得底层切片的长度。
call of reflect.Value.Len on ptr Value它会因为如果我Len()直接打电话而感到恐慌,如果我打电话call of reflect.Value.Len on interface Value给Elem().Len().
以下是我试图实现的功能:
func pop(slice interface{}) interface{} {
v := reflect.ValueOf(slice)
length := v.Len()
last := v.Index(length - 1)
v.SetLen(length - 1)
return last
}
我怎样才能同时使用refect.Value切片指针?
饮歌长啸
相关分类