如何使用Golang获取相同类型的另一个变量的新变量

时间:2016-11-06 13:09:27

标签: go reflection

我该怎么做?我想要一个函数返回一个与其参数类型相同的变量。我需要类似下面的内容:

type Whatever struct {
    Title string
}

hey:= Whatever{Title:"YAY"}
thetype := reflect.ValueOf(hey).Kind()

// This does not work
BB:= new(thetype)

1 个答案:

答案 0 :(得分:2)

如果您想从reflect.Type创建新值,可以使用reflect.New执行此操作:

thetype := reflect.TypeOf(hey)
BB:= reflect.New(thetype)

这会返回reflect.Value
然后,您可以使用.Interface()并键入断言以返回原始类型。

Go操场上的示例:https://play.golang.org/p/rL-Hm0IUpd