如何在Go 中實現具有公共字段的結構體的共享方法
當處理共享公共字段的多個結構體時,經常需要為這些結構實作一個通用方法。雖然繼承或混合看起來像是可行的方法,但它們在 Go 中面臨局限性。
一種方法是定義一個指定所需方法的接口,如下所示:
或者,嵌入可用於實現程式碼重用。然而,這需要仔細考慮,因為嵌入字段在調用 o.Insert(this) 時不會被插入,除非它們也在嵌入類型中定義。
重要的是要記住嵌入並不支援基於繼承的方法重寫。在嵌入結構中重新定義 Save() 並在重新定義中呼叫基底類別的方法在 Go 中並不被認為是一個好的做法。
在考慮兩種方法之間時,必須評估具體要求和權衡涉及。介面方法提供了更大的靈活性,而嵌入可以提供效能優勢,但需要仔細考慮嵌入欄位的行為。
以上是如何實作具有公共欄位的 Go 結構體的共用方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!