首頁 >後端開發 >Golang >如何在 Go 中實作具有介面回傳類型的介面方法?

如何在 Go 中實作具有介面回傳類型的介面方法?

Susan Sarandon
Susan Sarandon原創
2024-11-09 15:12:02536瀏覽

How to Implement Interface Methods with Interface Return Types in Go?

Go 中實作介面回傳類型的介面方法

在Go 中,可能會遇到一種情況,介面方法有一個介面作為它的介面返回類型。這就提出瞭如何實現這樣一個方法的問題。

考慮提供的範例程式碼:

嘗試編譯此程式碼時,會發生錯誤,因為A 結構體的FB 方法傳回a *B 具體類型而不是所需的IB接口類型。

要解決此問題,只需修改A 結構體中的FB 方法以返回IB 接口類型即可:

現在,A 結構體正確實現了IA 接口,並且可用作IA 類型。

在介面定義在不同套件中的情況下,仍然可以適當地實作該方法。例如,如果IA 和IB 定義在套件foo 中,並且實現在套件bar 中,則聲明和實作將如下所示:

聲明(在foo 套件中):

實現(在bar包中):

透過將回傳值強制轉換為所需的介面類型,實現可以符合所需的介面並編譯成功了。

以上是如何在 Go 中實作具有介面回傳類型的介面方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn