在 Go 中使用現有類型時,可能需要使用自訂方法來擴展它們以增強功能。但是,正如提供的範例程式碼所示,禁止直接向非局部類型添加方法。
要克服此限制,主要考慮兩種方法:
1。定義包裝類型:
範例:
type MyRouter struct { mux.Router // Anonymous field } func (m *MyRouter) F() { ... } r := &MyRouter{origRouter} r.F()
2.嵌入原始型別:
範例:
type MyRouter struct { *mux.Router // Embedded field } func (m *MyRouter) F() { ... } router := &MyRouter{origRouter} router.F()
這兩種方法都允許您擴充現有類型,而無需修改原來的套件。透過建立新類型或嵌入原始類型,您可以定義可對自訂類型的實例進行操作的其他方法。
以上是如何為 Go 中的現有類型新增自訂方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!