Maison >développement back-end >Golang >Comment puis-je ajouter des méthodes aux types existants dans Go ?
Extension de types existants dans Go
Lorsque vous essayez d'ajouter des méthodes personnalisées à des types existants à partir de packages importés, vous pouvez rencontrer une erreur indiquant que vous ne peut pas définir de nouvelles méthodes sur des types non locaux. Cette limitation provient du système de types de Go, qui interdit les modifications des types définis ailleurs.
Pour contourner cette restriction, il existe deux approches principales :
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) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!