How to I convert reflect.New's return value back to the original type
问题 I'm using reflection in go and I noticed the oddity expressed below: package main import ( "log" "reflect" ) type Foo struct { a int b int } func main() { t := reflect.TypeOf(Foo{}) log.Println(t) // main.Foo log.Println(reflect.TypeOf(reflect.New(t))) // reflect.Value not main.Foo } How can I convert the reflect.Value back to main.Foo ? I've provided a go playground for convenience. 回答1: You use the Value.Interface method to get an interface{} , then you can use a type assertion to extract