2017-12-13 3 views
-5

Goでチャネルとのインタフェースを定義できますか?私は、すべて同じチャンネルが定義されている異なるタイプのオブジェクトを使用できるようにするインターフェースを定義したいと思います。 EXE:Goでチャネルを持つインタフェースを定義

type I interface { 
    chan Communications []byte 
    otherMethod() 
} 

(この構文を与えるエラー:予期しないトークンちゃんは私はいくつかの異なる構文と無駄にグーグルいくつかを試してみました。)

+2

質問する前に、ドキュメントを確認してください。https://golang.org/ref/spec#Interface_types –

答えて

2

インタフェースは、データを保持していない、それは何かが実装を定義します。

チャネルを返すメソッドを持つことができます。例:

type I interface { 
    getChannel() (chan []byte) 
    otherMethod() 
} 

インターフェイスでお読みください。 tourが役に立ちます。

+0

迅速な対応をありがとうございます。投稿する前にツアーをたどりましたが、そこに文書化されている以上の機能があることを期待していました。私は最近、あまりC++をプログラミングしてきたと思います。あなたのメソッドは機能しますが、インターフェースのチャンネルへの直接アクセスは速く、よりシンプルなコードを持っているのに対し、余分な関数呼び出しを意味します。 – user3726494

関連する問題