我的代码中有一个类型包装器:
package my_package
import "github.com/gin-gonic/gin"
type Server *gin.Engine
在我的包装中使用它非常好,如:
func NewServer() Server {
s:= Server(gin.Default())
// I can call *gin.Engine functions on my s here without problems
return s
}
在我的测试套件(位于另一个软件包中)中,我导入了我的软件包并获得了服务器类型。但是,当我尝试调用一些“继承”函数时,它不起作用。
server_test.go:68: server.ServeHTTP undefined (type my_package.Server has no field or method ServeHTTP)
发生了什么事?
修改
我找到的解决方案与下面的@ jiang-yd答案有关: 将类型更改为嵌入结构
type Server struct {
*gin.Engine
}
并更改“演员”
s := Server{gin.Default()}