我正在尝试使用结构的类型作为我希望得到的函数的一般参数:
type comments []struct {
ID string `json:"id"`
Author string `json:"author"`
Text string `json:"text"`
}
handleReadAll("/getsome")
func handleReadAll(getPath string){
var someVar comments
}
因为你可以看到我有someVar作为类型注释,我需要对该类型进行泛型使用,这样我就可以使用带有泛型类型结构的handleReadAll这是我到目前为止所尝试的:
handleReadAll("/getsome",comments{})
func handleReadAll(getPath string,structToDecodeArray interface{}){
var object2 reflect.ValueOf(&structToDecodeArray)
var object = reflect.ValueOf(&structToDecodeArray)
fmt.Println("var",object)
fmt.Println("var",reflect.ValueOf(&structToDecodeArray).Interface())
fmt.Println("var",reflect.TypeOf(&structToDecodeArray))
fmt.Println("var",reflect.ValueOf(&structToDecodeArray).Type().Elem)
}
我无法完成这项工作,我使用反射来尝试获取参数structToDecodeArray的类型,我怎么能得到相同的var。
var someVar comments
但有反思。
答案 0 :(得分:-1)
经过一些测试后,我设法得到它,我向函数发送了错误的参数我将其改为此
var paramVar comments
handleReadAll("/getsome",paramVar)
func handleReadAll(getPath string,structToDecodeArray interface{}){
var someVar = reflect.ValueOf(structToDecodeArray).Interface()
}
这就是传递给函数的参数类型Interface的等效变量,就像有
一样var someVar comments