chan使用パターンを記録するよ! chanは強力な仕掛けなんだけど、 道を踏み外すと道半ばで刺さる。 なので良かったパターンをメモっとく。 chanを扱う役割は5つある。 makeする役(maker) writeする役(writer) readする役(reader) closeする役(closer) 破棄する役(GC) これらを踏まえて抑えるべきポイントは read,write,closeは時間的にmakeからGCまでの間にしか存在してはいけない。 readerとwriterは基本別のgoroutineであること。 closeはreaderに終了を通知するためのもの。 readerを終了させる最善の手はclose。 基本writerとcloserは一蓮托生。 そうでなければcloseは使うべきでない。 chanは同期のための仕組みで、Mutexなどを併用するのは使い方がおかしい。 cha