単一の case ステートメント内での受信と送信
Go では、同じ select case ステートメント内で受信操作と送信操作を組み合わせることができます。次のコード スニペットで示されているように:
for { select { ... case ch2 <- (<-ch1): ... } }
このコードは、チャネル ch1 の結果をチャネル ch2 に転送することを目的としています。ただし、select ステートメントが ch1 からの受信と ch2 への送信のどちらの操作を選択するかという問題が生じます。
選択プロセス
Go で説明したとおりselect ステートメントを入力するときのドキュメントを参照してください:
指定されたコードの影響
提供された例では、次のことが発生します:
case ch2 <- (<-ch1):
したがって、select ステートメントは、ch1 から受信した値を ch2 に送信するか、別のケースを処理するかを選択します。
Side Effect
たとえ ch1 からの受信動作が最終的に選択されなかったとしても、値は依然として消費され、破棄されることに注意することが重要です。この動作は重大な可能性があるため、このパターンを使用する場合は考慮する必要があります。
以上が`select` は `case ch2 で受信するか送信するかを選択しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。