2016-04-25 29 views
-1

同じ機能の中でチャンネルを双方向にするにはどうすればよいですか(これは正しいと言えません)。次のコードがある場合は、同じ機能でチャンネルを使用して送受信する

func server (a <-chan string) { 
    data:= <-a 
    // now is there a way I can send data through the same channel 
    // data <- "yet another string" 
} 

これを実装する方法はありますか?助けをお待ちしています。

+0

あなたの例では、指向性チャンネル(このパラメータの矢印に注意してください)があるので、このサンプルコードでは双方向通信はできません。 –

+1

これを2通りのチャンネルにするには、(a-ch string)の代わりに矢印(chan文字列)を削除するだけです。 – Warrior

+0

@ william.taylor.09この場合、そのチャンネルの成長のサイズを知る必要があります。私の場合は、どれくらい拡大できるのか分かりません。 – dvlper

答えて

0

上記のコードでは、チャネル付き方向ポインタは、許可されているチャネルではなく、そのチャネル上の他のアクティビティを実行する機能を制限します。だから、それを作る:

func server (a chan string) { 

代わりの

func server (a <-chan string) { 

は、関数が送信だけでなく、同じチャネルを介してデータを受信できるようになります。

関連する問題