我的代码中有两个函数,一个具有参数类型的父函数interface{}
和另一个具有interface{}
参数类型的子函数。我调用childFunc
并parentFunc
断言父参数*interface{}
并将其传递给childFunc
最后我用&user
参数调用父函数
func childFunc(param interface{}){}
func parentFunc(param interface{}){
childFunc(*(param.(*interface{})))
}
parentFunc(&user)
但我有这个错误:
interface conversion: interface {} is *models.User, not *interface {}
问题是什么?我怎么解决这个问题?
这是我真正的代码。
func Update(context echo.Context, modelUpdatedInstance interface{}, constraints map[string]interface{}) error {
/* Validation */
//test := modelUpdatedInstance.(*interface{})
_, validationErrors := govalidator.ValidateStruct(*(modelUpdatedInstance.(*interface{})))
if validationErrors != nil {
return validation.CheckValidation(context, validationErrors)
}
if constraints != nil {
database.DB.First(modelUpdatedInstance, constraints["id"]).Model(modelUpdatedInstance).Updates(modelUpdatedInstance)
} else {
return context.JSON(http.StatusBadRequest, map[string]interface{}{"Errors": []string{"no identifier"}})
}
return context.JSON(http.StatusOK, *(modelUpdatedInstance.(*interface{})))
}