我试图创建一个可以重置通过切片这样的功能:如何用Golang中的反射包去除切片中的所有元素?
func resetSlice(slice interface{}) {
v := reflect.ValueOf(slice)
s := v.Type().Elem()
// QUESTION: How to reset the slice here?
}
usernames := []string{"Hello", "World"}
resetSlice(&usernames)
fmt.Println(usernames) // OUTPUT : [Hello World]
// EXPECTED: []
但我不知道如何重置指针片的想法。也许创建一个与指针切片类型相同的新切片
reflect.New(v.Type().Elem())
然后替换指针切片?但是如何?
2017-07-03 Yami Odymel