-1
我有一個封裝的方法:如何通過接口間接golang
func Route(router *mux.Router){
subrouter := router.PathPrefix(_API).Subrouter()
subrouter.Path(_FOO).HandlerFunc(foo)
subrouter.Path(_BAR).HandlerFunc(bar)
}
,我想通過在我的包的匹配接口,簡單涵蓋所有功能以除去多路複用器的外部的依賴上面使用,就像這樣:
type Router interface{
Path(string) Path
PathPrefix(string) Path
}
type Path interface{
HandlerFunc(http.HandlerFunc)
Subrouter() Router
}
func Route(router Router){
subrouter := router.PathPrefix(_API).Subrouter()
subrouter.Path(_FOO).HandlerFunc(foo)
subrouter.Path(_BAR).HandlerFunc(bar)
}
但是當我建立這個我得到錯誤:
*mux.Router does not implement api.Router (wrong type for Path method) have Path(string) *mux.Route want Path(string) api.Path
,但我認爲接口隱式在golang中使用,所以我認爲*mux.Route
確實實現了我的Path接口。