2010-06-27 86 views
1

閱讀規範和他們的「Effective Go」部分後,我仍然不太明白Go中的接口是如何工作的。界面在Go中的工作原理是什麼?

像,你在哪裏定義它們?界面實施如何工作?有沒有一種方法來指定某個對象實現接口的地方,而不是簡單地在接口中定義方法?

對於初學者問題的道歉;但我真的很難理解這一點。

回答

3

Russ CoxIan Lance Taylor's博客的界面上有一些很好的帖子,我建議您檢查一下。他們可能會涵蓋您的問題和更多...

我認爲一個好的概念示例是net包。您將找到一個連接接口(Conn),該接口由TCPConnUnixConnUDPConn實施。 Go pkg源可能是Go語言的最佳文檔。

+0

這些帖子非常好。感謝其他資源。 – 2010-06-27 07:24:44

+0

希望你喜歡Go。也有很多質量保證部門也在非常活躍的郵件列表中。 – 2010-06-27 07:28:44

3

基本上,你定義一個接口這樣的:

type InterfaceNameHere interface { 
    MethodA(*arg1, *arg2) 
    MethodB(*arg3) 
} 

即特定的接口定義要求的任何一個實現了接口同時具有MethodA方法,該方法需要兩個參數,以及MethodB方法,該方法1級的說法。

一旦你定義了它,Go會自動檢查你什麼時候嘗試使用某個需要某個接口的東西,無論你使用的是否滿足該接口。您不必明確說明給定的事物滿足給定的接口,只是在您希望滿足它的場景中嘗試使用某些內容時自動進行檢查。

+0

雖然你把類型'InterfaceType接口{...}'放在哪裏?在你的'main'包中? – 2010-06-27 06:56:04

+1

無論您打算如何使用它 - 範圍界定的工作方式與其他任何操作一樣。 – Amber 2010-06-27 07:02:13

+0

非常感謝,琥珀。 :) – 2010-06-27 07:24:21

相關問題