【发布时间】:2014-05-25 09:50:35
【问题描述】:
我正在编写一个名为 "GoRequest" 的库,它包含 net/http 包,旨在制作一个简单的 http 客户端。
现在,我遇到了与参数类型相似的函数转换问题。这是我的问题sn-p。
type Request *http.Request
type Response *http.Response
func (s *SuperAgent) RedirectPolicy(policy func(req Request, via []Request) error) *SuperAgent {
s.Client.CheckRedirect = policy
return s
}
s.Client.CheckRedirect 是http.Client struct 的成员,应该收到func(req *http.Request, via []*http.Request) error
如你所见,我想转换func(req Request, via []Request) error --> func(req *http.Request, via []*http.Request) 具有相似类型的参数。
但它返回一个错误:
./main.go:142: cannot use policy (type func(Request, []Request) error) as type func(*http.Request, []*http.Request) error in assignment
我找不到任何此类转换的文档,如果可能,请提出建议。 如果没有,请提出其他一些好的方法来做到这一点。谢谢!
【问题讨论】:
-
Go 中没有类型别名,每个声明的类型都是新的不同类型,因此两个函数的签名在技术上非常不同。
标签: function go type-conversion