php小編小新回答你的問題,如果你想知道你的結構實作了哪些接口,有幾種方法可以實作。首先,你可以使用go cmdline命令列工具來尋找。在命令列中輸入"go doc -all",然後按回車鍵,它會顯示出你的結構中實現的所有介面。另外,如果你使用的是IntelliJ IDE,你可以使用它提供的程式碼導航功能來找出你的結構實現的介面。只需在程式碼中找到你的結構定義,然後按住Ctrl鍵並點擊結構名稱,它將會顯示所有的介面實作。希望這些方法對你有幫助!
說我有
// main.go type Speaker interface { Speak() } type Person struct {} func (p *Person) Speak() { panic("test") }
在給定程式碼中其他地方的人,有沒有辦法知道 Person 實作了哪些介面?很明顯,Person 實作了Speaker,但是如果是其他型別呢
type Ghost interface { Speak() }
存在於另一個套件中?
就上下文而言,我正在查看程式碼庫,但很難決定是否可以刪除接收器方法,因為很難判斷該方法是否存在是為了滿足介面要求,還是只是為了增強功能。在獨立的程式碼庫中,我可以刪除它並查看是否出現編譯器錯誤,但我不能在公共庫中執行相同的操作。
從goland 文件中,您可以使用正在實現或覆蓋您的介面的裝訂線圖示轉到單一實現,或者您可以使用Cmd U 找到所有實現(假設您在Mac 上工作)。這是文檔的連結:
https://www.jetbrains .com/help/go/navigating-through-the-source-code.html#go_to_implementation
由於 Goland 是基於 IntelliJ 的 Go IDE,因此您應該能夠執行相同的操作。您可能需要配置裝訂線圖標,但相同的命令應該在 IntelliJ 中工作。
以上是有沒有辦法透過 go cmdline 或 IDE (IntelliJ) 找出我的結構實作了哪些介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!