我想在 golang 中创建带有名称的数组,但是我遇到了一些错误 这是我的代码 包主
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, 0).Interface()
工作示例:
作为旁注,在大多数情况下,零 slice 比容量为零的 slice 更合适。如果你想要一个 nil slice ,可以这样做:
slice := reflect.Zero(reflect.SliceOf(myType)).Interface()
关于reflection - 如何使用反射在golang中创建具有给定名称(字符串)的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604345/