Melanjutkan Jenis Sedia Ada dalam Go
Apabila cuba menambah kaedah tersuai pada jenis sedia ada daripada pakej yang diimport, anda mungkin menghadapi ralat yang menunjukkan bahawa anda tidak boleh menentukan kaedah baharu pada jenis bukan tempatan. Had ini berpunca daripada sistem jenis Go, yang tidak membenarkan pengubahsuaian kepada jenis yang ditakrifkan di tempat lain.
Untuk memintas sekatan ini, terdapat dua pendekatan utama:
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) }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Kaedah kepada Jenis Sedia Ada dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!