如何使用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一开始我以为你是那个照常回答的人。