We break down channels in Go as the basic communication mechanism for goroutines: the type
chan
T, creation via
make(
chan
T), and the dangers of a
nil channel. We learn two operations — sending
ch
<-
v and receiving
<-
ch — understand the “handshake” of an unbuffered channel, the reasons for
deadlock, and common mistakes when designing a send/receive protocol.