反射 – 如何使用反射在golang中使用给定名称(字符串)创建数组
发布时间:2020-12-16 09:27:14 所属栏目:大数据 来源:网络整理
导读:我想在golang中使用name创建数组,但是我遇到了一些错误 这是我的代码 包主 import ( "fmt" "reflect")type My struct{ Name string Id int}func main() { my := My{} myType := reflect.TypeOf(my) fmt.Println(myType) //v := reflect.New(myType).Elem().I
我想在golang中使用name创建数组,但是我遇到了一些错误
这是我的代码 包主 import ( "fmt" "reflect" ) type My struct{ Name string Id int } func main() { my := &My{} myType := reflect.TypeOf(my) fmt.Println(myType) //v := reflect.New(myType).Elem().Interface() // I want to make array with My //a := make([](myType.(type),0) //can compile //a := make([]v.(type),0) ////can compile fmt.Println(a) } 解决方法
我相信这就是你要找的东西:
slice := reflect.MakeSlice(reflect.SliceOf(myType),0).Interface() 工作范例: > http://play.golang.org/p/jiYluu52ae 作为旁注,在大多数情况下,零切片比容量为零的切片更合适.如果你想要一个零切片,那么这样做: slice := reflect.Zero(reflect.SliceOf(myType)).Interface() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |