Ich möchte Route- gorilla/mux
und Routertypen eine praktische Util-Methode hinzufügen :
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)
}
aber der Compiler informiert mich
Neue Methoden für den nicht lokalen Typ mux.Router können nicht definiert werden
Wie würde ich das erreichen? Erstelle ich einen neuen Strukturtyp mit anonymen Feldern mux.Route und mux.Router? Oder etwas anderes?
“extension methods are not object-oriented”
für C # als nicht objektorientiert ( ) betrachtet, aber als ich sie heute betrachtete, wurde ich sofort an die Schnittstellen von Go (und ihren Ansatz zum Überdenken der Objektorientierung) erinnert, und dann hatte ich genau diese Frage.