【Go】channel の状態と操作の対応

Go言語による並行処理 | Katherine Cox-Buday, 山口 能迪 |本 | 通販 | Amazon を読んで goroutine と channel ついて1から勉強してる。

すぐ忘れるので channel の状態と操作の対応を自分用にメモ。

操作 状態 結果
read nil ブロック
Open で空ではない (値, true)
Open で空 ブロック
Close (デフォルト値, false)
書き込み専用 コンパイルエラー
write nil ブロック
Open で空ではない 値を書き込む
Open で空 ブロック
Close panic 発生
読み込み専用 コンパイルエラー
close nil panic 発生
Open で空ではない チャネルを閉じる。
読み込みはチャネルが空になるまでは成功する。
Open で空 チャネルを閉じる。
Close panic 発生
読み込み専用 コンパイルエラー