Heim >Backend-Entwicklung >Golang >Wie kann ich Methoden zu vorhandenen Typen in Go hinzufügen?
Vorhandene Typen in Go erweitern
Beim Versuch, benutzerdefinierte Methoden zu vorhandenen Typen aus importierten Paketen hinzuzufügen, wird möglicherweise eine Fehlermeldung angezeigt, die darauf hinweist, dass Sie Für nicht-lokale Typen können keine neuen Methoden definiert werden. Diese Einschränkung ergibt sich aus dem Typsystem von Go, das Änderungen an anderswo definierten Typen nicht zulässt.
Um diese Einschränkung zu umgehen, gibt es zwei primäre Ansätze:
type MyRoute struct { *mux.Route } func (m *MyRoute) Subroute(tpl string, h http.Handler) *mux.Route { return m.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } type MyRouter struct { *mux.Router } func (r *MyRouter) Subroute(tpl string, h http.Handler) *mux.Route { return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) }
type MyRoute embed mux.Route func (m *MyRoute) Subroute(tpl string, h http.Handler) *mux.Route { return m.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } type MyRouter embed mux.Router func (r *MyRouter) Subroute(tpl string, h http.Handler) *mux.Route { return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) }
Das obige ist der detaillierte Inhalt vonWie kann ich Methoden zu vorhandenen Typen in Go hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!