Go 中實作介面回傳類型的介面方法
在Go 中,可能會遇到一種情況,介面方法有一個介面作為它的介面返回類型。這就提出瞭如何實現這樣一個方法的問題。
考慮提供的範例程式碼:
嘗試編譯此程式碼時,會發生錯誤,因為A 結構體的FB 方法傳回a *B 具體類型而不是所需的IB接口類型。
要解決此問題,只需修改A 結構體中的FB 方法以返回IB 接口類型即可:
現在,A 結構體正確實現了IA 接口,並且可用作IA 類型。
在介面定義在不同套件中的情況下,仍然可以適當地實作該方法。例如,如果IA 和IB 定義在套件foo 中,並且實現在套件bar 中,則聲明和實作將如下所示:
聲明(在foo 套件中):
實現(在bar包中):
透過將回傳值強制轉換為所需的介面類型,實現可以符合所需的介面並編譯成功了。
以上是如何在 Go 中實作具有介面回傳類型的介面方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!