title: Pass an interface{} type with pointer value to an interface{} parameter
body: <p>I have two function in my code, a parent function with <code>interface{}</code> parameter type and another child function with <code>interface{}</code> parameter type.
  I called <code>childFunc</code> in <code>parentFunc</code> and assert parent param to <code>*interface{}</code> and pass it to <code>childFunc</code> and at the end i called parent function with <code>&amp;user</code> argument</p>
  <pre><code>func childFunc(param interface{}){}
  
  func parentFunc(param interface{}){
       childFunc(*(param.(*interface{})))
  }
  
  parentFunc(&amp;user)
  </code></pre>
  <p>but i have this error:</p>
  <pre><code>interface conversion: interface {} is *models.User, not *interface {}
  </code></pre>
  <p>what is the problem?
  how can i solve this problem?</p>
  <p>this is my real code.</p>
  <pre><code>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[&quot;id&quot;]).Model(modelUpdatedInstance).Updates(modelUpdatedInstance)
      } else {
          return context.JSON(http.StatusBadRequest, map[string]interface{}{&quot;Errors&quot;: []string{&quot;no identifier&quot;}})
      }
  
      return context.JSON(http.StatusOK, *(modelUpdatedInstance.(*interface{})))
  }
  </code></pre>