如何使用接口类型还原为结构体类型
在使用 echo 框架时,开发者可以通过接口类型重用 api,从而实现代码复用。然而,在实际应用中,却遇到了 echo.bind() 要求传入结构体类型的问题。
具体来说,在以下代码中:
func get(service _interface.getinterface) echo.handlerfunc {
return func(c echo.context) (err error){
if err := c.bind(&service); err == nil {
// ...
} else {
// ...
}
}
}由于 c.bind() 方法必须传入一个结构体类型,而 service 是一个接口类型,因此无法直接使用。
解决方案
Echo框架 5.1.0 版本源码包下载,适合关注 RealIP 行为变化、StartConfig.Listener、NewDefaultFS 和观测性中间件入口的开发团队。
要解决这个问题,可以通过以下方法:
去除 c.bind() 中的 &
只需将 c.bind(&service) 中的 & 符号去掉,即可直接将接口类型 service 作为参数传入:
if err := c.Bind(&service); err == nil {
// ...
} else {
// ...
}

















