Je souhaite ajouter une méthode utilitaire aux gorilla/mux
types de routage et de routeur:
package util
import(
"net/http"
"github.com/0xor1/gorillaseed/src/server/lib/mux"
)
func (r *mux.Route) Subroute(tpl string, h http.Handler) *mux.Route{
return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h)
}
func (r *mux.Router) Subroute(tpl string, h http.Handler) *mux.Route{
return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h)
}
mais le compilateur m'informe
Impossible de définir de nouvelles méthodes sur un mux de type non local.
Alors, comment pourrais-je y parvenir? Est-ce que je crée un nouveau type de structure qui a des champs mux.Route et mux.Router anonymes? Ou autre chose?
“extension methods are not object-oriented”
) pour C #, mais en les regardant aujourd'hui, je me suis immédiatement souvenu des interfaces de Go (et de son approche pour repenser l'orientation des objets), puis j'ai eu cette question.