34

<-go言語の演算子は何ですか? これは Go に関連する多くのコード スニペットで見られますが、その意味は何ですか?

4

3 に答える 3

22

すでに答えが出ていますが、ここに行きます。

チャネルをメッセージ キューと考えてください。

チャネルが左矢印 (<-) 演算子の右側にある場合、エントリをデキューすることを意味します。変数へのエントリの保存はオプションです

e <- q

チャネルが左矢印演算子の左側にある場合、エントリをキューに入れることを意味します。

q <- e

変数に格納せずに「デキュー」(受信) することについてさらに注意してください。Java で「待機/通知」操作のようなものを実装するために、バッファリングされていないキューで使用できます。 、その後、別のコルーチンがそのシグナルをエンキュー/送信しますが、その内容は重要ではありません。(または、受信者がメッセージを引き出すまで送信者をブロックすることもできます)

于 2013-04-13T01:50:36.183 に答える
3

受信オペレーター

chチャネル タイプ のオペランドの場合、受信操作<-chの値はチャネルから受信した値ですch

チャネルから値を受け取ります。http://golang.org/ref/spec#Receive_operatorを参照してください

于 2013-04-10T13:10:03.060 に答える