golang通过反射获取数据类型并且实例化对象: 主要是有时候需要判断 interface{}类型数据,对应的源数据类型,可以通过下面的方法实现
// DuplicateString d 是 []Type 类型的数据
func DuplicateString(d interface{}) interface{} {
t := reflect.TypeOf(d)
if t.Kind() == reflect.Slice {
t = t.Elem()//元素的类型
}
newStruct := reflect.New(t)// 调用反射创建对象
newStruct.Elem().FieldByName("Suits").SetString("机车") //设置值
return newStruct
}
