簡潔にまとめられなかったので式表現をそのままタイトルに書いてしまったが、分かっていないとエンバグしそうな挙動を見つけたのでメモしておく。 TL;DR チャネルを使ったselectのcase文中で、関数を呼び出した結果でチャネルへの送信をしないほうがよい チャネルを使ったselectのcase文中で、別のチャネルから受信した結果でチャネルへの送信をしないほうがよい 文章で書くとわかりにくいのだが、コードで書くと以下のような処理を書くのは避けたほうがよい、というのが主題だ。 なお、検証環境は以下。 go version go1.12 darwin/amd64 https://play.golang.org/ (2019/03/15時点) チャネルを使ったselectのcase文中で、関数を呼び出した結果でチャネルへの送信をしないほうがよい まずselect文のcaseで関数呼び出しをしていると