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

如何使用Golang获取与另一个变量相同类型的新变量,go,reflection,Go,Reflection,我该怎么做?我想要一个函数返回一个与它的一个参数类型相同的变量。我需要像下面这样的东西: type Whatever struct { Title string } hey:= Whatever{Title:"YAY"} thetype := reflect.ValueOf(hey).Kind() // This does not work BB:= new(thetype) 如果要从reflect.Type创建新值,可以使用reflect.new: thetype := refl

我该怎么做?我想要一个函数返回一个与它的一个参数类型相同的变量。我需要像下面这样的东西:

type Whatever struct {
    Title string
}

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

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

如果要从
reflect.Type创建新值,可以使用
reflect.new

thetype := reflect.TypeOf(hey)
BB:= reflect.New(thetype)
这将返回一个
reflect.Value

例如,您可以使用
.Interface()
和类型断言返回原始类型


围棋场示例:

如果要从
反射创建新值,请键入
,您可以使用
反射。新建

thetype := reflect.TypeOf(hey)
BB:= reflect.New(thetype)
这将返回一个
reflect.Value

例如,您可以使用
.Interface()
和类型断言返回原始类型


Go操场上的例子:

从技术上讲,这些都不是同一类型:(虽然最初的问题是使相同的值与指针相同)如果他想要一个值而不是指针,他可以使用
reflect.Zero
。然而,由于他的源代码使用了
new
,我想象他想要一个指针。@JimB起初我以为你是那个照常回答的人。从技术上讲,这些类型不同:(虽然最初的问题是使值与指针相同)如果他想要一个值而不是指针,他可以使用
reflect.Zero
。然而,由于他的源代码使用了
new
,我想象他想要一个指针。@JimB一开始我以为你是那个照常回答的人。