<分区>
我的代码中有一个类型包装器:
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()}